didSelectItemAtIndexPath是通过UIResponder的四个touch方法实现的(touchBegan, touchMove, touchEnd, touchCancel),因此当给UICollectionView添加手势识别时(如tap手势),手势识别成功后touch事件会被取消掉,导致didSelectItemAtIndexPath无法调用,解决办法是将手势识别的cancelTouchesInView属性设为NO,即手势识别成功之后依然继续发送touch事件. ps:发…
UICollectionViewDataSource协议 这个协议主要用于collectionView相关数据的处理,包含方法如下: 设置分区数(这个是可选实现的) - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView; 设置每个分区有多少个item(必须实现) - (NSInteger)collectionView:(UICollectionView *)collectionView n…
参考资料 UITableView UICollectionView UICollectionViewDataSource UICollectionViewDelegate UICollectionViewDelegateFlowLayout UITableViewCell自适应高度框架 关于FDTemplateLayoutCell作者博客 设计思路 UITableView.png UICollectionView.png UICollectionViewDelegateFlowLayout.pn…
一 整体功能图和实现思路 1 完整的功能图: 2 实现功思路: 1> 流水布局(实现UICollectionView必需要的条件) 2> 自己定义cell(实现UICollectionView必需要的条件) 3> 自己定义流水布局 4> 假设想冲缓存池中取,那么必须採用注冊的方法 5> 照片缩放 6> 照片移动后自己主动定位功能 7> 一种新的封装思路 二 流水布局 1 包含下面部分: -> 1> cell的大小 -> 2> 滚动方向 -&…
实现类似这样的效果,可以滚动大概有两种实现方案 1. 使用scrollview来实现 2. 使用UICollectionView来实现 第一种比较简单,而且相对于性能来说不太好,于是我们使用第二种方案 UICollectionView 的基础知识再次就不做说明了,在网上随便一搜都是一大把,我们就说说这个如何实现的吧, 其实很简单 就这么几个文件. 先看看控制器里边的代码 import UIKit class ViewController: UIViewController,UICollectio…
class testViewController:BaseViewController,UICollectionViewDataSource, UICollectionViewDelegate , UICollectionViewDelegateFlowLayout{ lazy var myCollectionView:UICollectionView = { let layout = UICollectionViewFlowLayout() layout.minimumLineSpacing…
一.介绍 UICollectionView类负责管理数据的有序集合以及以自定义布局的模式来呈现这些数据,它提供了一些常用的表格(table)功能,此外还增加了许多单栏布局.UICollectionView支持可以用于实现多列网格. 平铺的布局. 圆形的布局和更多的自定义布局,甚至你可以动态地改变它的布局. 当将一个集合视图添加到您的用户界面,您的应用程序的主要工作是管理与该集合视图关联的数据.集合视图的数据源对象,是一个对象,符合 UICollectionViewDataSource 协议,提供…
在开始前我们在这先附一段最简单的代码 - (void)viewDidLoad { [super viewDidLoad]; UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; UICollectionView *colView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:la…
最近要研究下排布的游戏关卡界面的实现,简单做了个UICollectionView的demo. 先看最后的效果: 下面来看实现的方法把,在Storyboard对应的ViewController中增加一个UICollectionView控件,然后再其中加入一个CollectionViewCell 在其中增加一个Label控件 注意,下面对这个Cell进行命名,命名成defaultCell, 这样我们UI层面的工作就结束了. 代码部分: 首先我们需要了解两个类,UICollectionViewData…
在很多app中都有这样通用的页面,一直没有机会使用UICollectionView,只是简单的看过他的使用方法.今天公司美工出图,使用了他,并且遇到了好多的坑.记录一下过程,不确定使用的方法是不是最优的,如果有更好的方案,一起讨论,一起进步 理论篇 一.UICollectionViewLayout是做什么的? 1.1 在创建UITableView的时候,使用的是- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)…