UICollectionView使用】的更多相关文章

开发环境 macOS Sierra 10.12.Xcode 8.0,如下图所示: 总体思路 1.建立空白的storyboard用于呈现列表 2.实现自定义单个单元格(继承自:UICollectionViewCell) 3.将列表(UICollectionView)注册到页面(StoryBoard)中,同时将单元格注册到列表中 4.运行查看效果 1.建立StoryBoard 本项目集成了 Tab Bar 和 Navigation Bar,整个项目(main.storyboard)试图如下所示: 这…
实现类似这样的效果,可以滚动大概有两种实现方案 1. 使用scrollview来实现 2. 使用UICollectionView来实现 第一种比较简单,而且相对于性能来说不太好,于是我们使用第二种方案 UICollectionView 的基础知识再次就不做说明了,在网上随便一搜都是一大把,我们就说说这个如何实现的吧, 其实很简单 就这么几个文件. 先看看控制器里边的代码 import UIKit class ViewController: UIViewController,UICollectio…
前一段时间因为工作需要实现了一个可以签到的日历,来记录一下实现的思路 效果如图:   这里的基本需求是: 1,显示用户某个月的签到情况,已经签到的日子打个圈,没有签到且在某个时间范围内的可以签到,其他的只能看. 2,服务器只会返回这个月用户签到日子的时间戳数组和可以签到的时间范围,剩下的日子就是没有签到的. 3,显示跟普通的日历一样即可,上面是“一二三四五六日”,下面是对应的日期. 4,可以切换到当前日期之前的月份.   根据需求,基本思路是: 用一个pageViewController作为基本…
UICollectionViewFlowLayout里面: // 方法一 - (void)prepareLayout{} // 方法二 - (nullable NSArray<__kindof UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect 贴出具体代码,注意方法二,要和一个带bool返回值的方法一块用: class CoverFlowLayout: UICollectio…
前言 API 不熟悉导致的问题,想当然的去理解果然会出问题,这里记录一下 UICollectionView 使用问题. 声明  欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 陷阱一:minimumLineSpacing.minimumInteritemSpacing 很容易就把这两个属性设置为 0 ,这两个属性是最小行间距和最小列间距,注意是最小!!也就是说实际上可以 > 0 ,…
重点知识 一. 加载collectionView注意事项 1.创建collectionView,有两种方式 :一种是xib和一种是纯代码:设置代理和数据源,注册cell,配置流水布局的属性,如上.下.左.右间距及行间距和列间距. 2. 创建CollectionViewCell,实现collectionView代理和数据源方法. 3. 设置每个cell的尺寸. 4.cell出现时显示动画 二. 流水布局思路分析 三.精华代码 //1.配置collectionView self.automatica…
现在都知道,在初始化UICollectionView的时候,必须要传入一Layout对象,进行布局管理.这也是collectionview和tableview的明显区别,通过collectionviewLayout,可以对collectionview进行更加强有力的控制. 自定义个UICollectionViewFlowLayout,重新里面的几个方法. 方法一: 每次滑动collectionview都会调用此方法,询问是否重新layout.如果returen Yes:则会调用方法二和方法三.…
UICollectionView其实就是UITableView的升级版,在布局方面比UITableView更出色.下面,先看代码吧 #import "RootViewController.h"#import "CollectionViewImageCell.h"#import "CollectionViewImageXibCell.h"#define SCREEN_BOUNDS ([[UIScreen mainScreen] bounds])#d…
http://blog.csdn.net/eqera/article/details/8134986 1.1. Collection View 全家福: UICollectionView, UITableView, NSCollectionView n   不直接等效于NSCollectionView n   也不替代UITableView----亲兄弟 为什么要使用Collection Views呢? n  可以高度定制内容的展现 n  管理数据最佳的做法 n  即使是处理大量数据,也非常的高…
UITabView/UICollectionView 全选问题 SkySeraph July. 30th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com The Issue Recently in my new project I need to select all the cell data in my UITabViewCell and UICollectionViewCell, and nee…
有关RunTime的知识点已经看过很久了,但是一直苦于在项目中没有好的机会进行实际运用,俗话说"光说不练假把式",正好最近在项目中碰到一个UITableView和UICollectionView在数据缺省的情况下展示默认缺省页的需求,这个时候RunTime大展拳脚的时候就到了. 大致的实现思路是这样的,因为UITableView和UICollectionView都是继承自系统的UIScrollView,所以为了同时实现UITableView和UICollectionView的缺省页,我…
上篇博客的实例是自带的UICollectionViewDelegateFlowLayout布局基础上来做的Demo, 详情请看<iOS开发之窥探UICollectionViewController(二) --详解CollectionView各种回调>.UICollectionView之所以强大,是因为其具有自定义功能,这一自定义就不得了啦,自由度非常大,定制的高,所以功能也是灰常强大的.本篇博客就不使用自带的流式布局了,我们要自定义一个瀑布流.自定义的瀑布流可以配置其参数: 每个Cell的边距…
一个UICollectionView有好多个cell,滑动一下,谁也不知道会停留在哪个cell,滑的快一点,就会多滑一段距离,反之则会滑的比较近,这正是UIScrollview用户体验好的地方. 如果想要UICollectionView停留到某个cell的位置,可以用 - (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPos…
前几天在gitHub看到个不错的效果,就是DaiExpandCollectionView,效果如图:   所以赶紧下下来源码看看他怎么实现的,打开源码看了半天,发现他没写什么关于动画的代码啊... 经高人指点,才明白原来他是利用了UICollectionViewFlowLayout的隐式动画!   所谓隐式动画,就是系统自带的动画了,其实也不是什么高大上的东西,关键是我怎么就没想到可以这么用!   研究了半天人家的源码,基本了解了他实现的思路,然后发现他的这个库用起来比较不方便,需要继承他的co…
UITableView 1. UITableViewStyleGrouped 分区表格样式创建表格 .separatorStyle = UITableViewCellSeparatorStyleSingleLineEtched;  // 雕刻,双线效果. 测试无效 2. UITableView的其他方法属性 // 表格是否进入编辑模式 ,用以显示添加,删除,移动标识 setEditing:   // 添加,删除不能同时显示 .allowsSelectionDuringEditing   // 在…
UICollectionView是一种类似于UITableView但又比UITableView功能更强大.更灵活的视图,这是源于它将UICollectionView对cell的布局交给了UICollectionViewLayout,而且允许用户自定义layout来进行布局. 当UICollectionView显示内容时,先从Data source(数据源)获取cell,然后交给UICollectionView.再从UICollectionViewLayout获取对应的layout attribu…
有100个 item,数据源只有20个,只能在 20 个之间移动,防止 item 复用,出现 bug 方法一:苹果自带 //UICollectionViewDataSource- (BOOL)collectionView:(UICollectionView *)collectionView canMoveItemAtIndexPath:(NSIndexPath *)indexPath; - (void)collectionView:(UICollectionView *)collectionVi…
概述 在 App 中,日历通常与签到功能结合使用.是提高用户活跃度的一种方式,同时,签到数据中蕴含了丰富的极其有价值的信息.下面我们就来看看如何在 App 中实现日历签到功能. 效果图 ..... 思路分析 实现日历签到功能的思路有很多种,这里我们就使用 UICollectionView 来实现具备签到功能的日历 基础知识 关于瀑布流(若你对 UICollectionView 及 UICollectionViewLayout 的知识不太了解,请参照以下文章) 瀑布流-01-自定义布局实现绚丽的瀑…
现象 UICollectionView的内容在按Home键再回到APP时,会下沉64像素. 原因 页面有NavigationBar,正好是64像素,Controller勾选了Adjust Scroll View Insets导致. 解决方案 在Storyboard中取消勾选Controller的Adjust Scroll View Insets. 或者 self.automaticallyAdjustsScrollViewInsets = NO; 另一种解决方案: self.edgesForEx…
一.思路 思路一:比较每一行所有列的cell的高度,从上到下(也就是从第一行开始),从最短的开始计算,(记录下b的高度和索引,从开始计算,依次类推) 思路二:设置上.下.左.右间距和行间距.列间距及列数. 思路三:实现的重要的方法. 二.代码先行. 1.自定义layout类. //入口 #import <UIKit/UIKit.h> @protocol STRWaterLayoutDelegate; @interface STRWaterLayout : UICollectionViewLay…
#import "ViewController.h" @interfaceViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout> @end @implementation ViewController - (void)viewDidLoad { [superviewDidLoad]; UICollectionViewFl…
UICollectionView的加载方式和Tableview很像,基本上加载的方法都差不多,尤其是它的数据源的方法和代理方法基本上类似,只不过是名字上有点细微的差别而已.这里面不赘述. 1. UICollectionView为什么要自定义组头和组尾呢?原因是因为如果不自定义,系统会复用Cell,导致加载的控件出现重复的现象. 如下图: 绿色的view为组头,通过视图发现,组头上面的控件出现了叠加的现象. 如何解决上面复用的问题,使用initWithFrame的初始化视图的方法,当cell上的v…
今天 ,有群里人询问了 ,支付宝首页的UICollectionview 的cell(其实不能成为cell,应该是item,不过大家习惯这么称呼了)怎么实现 自定义的拖拽 和删除,然后我查了下资料,它的原理 其实是 给每个cell 添加了长按手势,通过手势方法判断手势的位置,然后执行删除按钮的出现,执行等,和其他cell位置互换的功能,特此添加,具体实现http://www.th7.cn/Program/IOS/201501/378782.shtml…
什么是UICollectionView UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式).如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各类图书,整齐排列.其实这就是一个UICollectionView的表现形式,或者iPad的iOS6中的原生时钟应用中的各个时钟,也是UICollectionView的最简单的一个布局,如图: i…
// // MallTestViewController.h // fitmiss // // Created by bill on 16/6/28. // Copyright © 2016年 lear. All rights reserved. // #import "RootViewController.h" @interface MallTestViewController : RootViewController @end // // MallTestViewControlle…
class testViewController:BaseViewController,UICollectionViewDataSource, UICollectionViewDelegate , UICollectionViewDelegateFlowLayout{ lazy var myCollectionView:UICollectionView = { let layout = UICollectionViewFlowLayout() layout.minimumLineSpacing…
一.UICollectionView集合视图           其继承自UIScrollView.         UICollectionView类是iOS6新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView类. 1.需要遵循的协议: 1)UICollectionViewDataSource, 2)UICollectionViewDelegate, 3)UICollectionViewDelegateFlowLayout 2.创建collecti…
陈述一下简单流程: 1.首先定义:UICollectionViewFlowLayout 2.初始化UICollectionView 3.注册复用的cell,定义她们的reuseIndefinite 4.注册UICollectionView的delegate和DataSource代理 5.完成代理,ok 代码: - (UICollectionView *)collectionView { if (!_collectionView) { UICollectionViewFlowLayout * la…
报错提示: *** Assertion failure in -[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewCategory:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/UICollectionView.m:3307 *** Terminating app due to uncaught exception 'NSInternalInconsis…
在storyboard 中 UICollectionView cellForItemAtIndexPath not called 被坑了好久,各种问题点查找,终于解决了 解决办法: self.automaticallyAdjustsScrollViewInsets = NO;//解决cellForItemAtIndexPath not called问题…