首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【IOS开发基础系列】UICollectionView专题

,用作cell平时背景     • 再其上是selectedBackgroundView,是cell被选中时背景     • 最后是一个contentView,自定义内容应被加在这个view上         ...比如在contentView里加了一个normal和selected指定了不同图片imageView,那么选中这个cell同时这张图片也会从normal变成selected,而不需要额外任何代码。...• 间隔 可以指定item之间间隔和每一行之间间隔,和size类似,有全局属性,也可以对每一个item和每一个section做出设定: @property (CGSize) minimumInteritemSpacing...,将影响Flow Layout基本方向和由header及footer确定section之间宽度         UICollectionViewScrollDirectionVertical         ...(HJInfoCellVM*)infoVM {     _infoVM= infoVM;     [self reloadSubViews]; } 3 开发技巧 3.1 布局技巧 3.1.1 设置每一行显示

38330
您找到你想要的搜索结果了吗?
是的
没有找到

WWDC2016 Session笔记 - iOS 10 UICollectionView新特性

而且更重要是,在屏幕外面等待加载cell是整整一行!这一行cell都已经加载完数据。这是UICollectionView在用户大幅度滑动时卡顿根本原因。用专业术语来说,掉帧。...当cell马上要进入屏幕时候,就会调用willDisplayCell方法。这个方法给了我们app最后一次机会,为cell进入屏幕做最后准备工作。...这里和iOS 9 有很大不同,iOS 9是加载整整一行cell。 这是因为我们用了新 UICollectionViewCell生命周期。整个app完全没有加一行代码。...综上所述,Pre-Fetching API对于提高UICollectionView性能提升是很有帮助,而且并不需要加入太多代码。加入少量代码就可以获得巨大性能提升! 三....新增API 针对self-sizing cells 改进 Interactive reordering 最后,谈谈我看了iOS 10 UICollectionView优化看法吧,原来有些地方用到

1.9K30

Swift 自定义布局实现瀑布流视图

查阅苹果文档可以得知,UICollectionView 布局是抽象类 UICollectionViewLayout 子类,它定义了 UICollectionView 中每个 item 布局属性叫做...这里我用了 Swift 生成随机数方式,在给每个 item 设置 frame 时候,随机生成一个高度,这也是我们创建动态化界面的常用方式,这个代码逻辑就比较简单了,一行代码即可搞定: CGFloat...(arc4random_uniform(150) + 50) 计算和缓存布局属性 在实现该功能之前,我们先了解一下 UICollectionView 布局过程,它与布局对象之间关系是一种协作关系,...位置信息赋值,最后再更新一下每列高度,直到为每一个 Cell 都重新计算了一遍它位置。...: 好了, 利用 UICollectionView 控件与自定义布局实现瀑布流内容到此就结束了,最后附上项目的源码地址: https://github.com/ShenJieSuzhou/SwiftScrollBanner

2.3K30

让你 App 更吸引人 5 个 iOS 库

它非常易于使用-只需下载 TKSwitcherCollection 并将其拖放到项目中,就可以了! 目前,有四种不同开关可用: • TKSimpleSwitch:可在 iOS 上使用传统开关。...AnimatedCollectionViewLayout 在项目之间滚动时,UICollectionView没有默认过渡效果动画。...AnimatedCollectionViewLayout 是一个 UICollectionViewLayout 子类,可在不影响您现有代码情况下向您 UICollectionView 添加自定义过渡和动画...要使用它,您需要将库导入到您项目中。然后,您必须创建一个 AnimatedCollectionViewLayout 对象,设置其动画设计器,并将其分配给您 UICollectionView。...该库可用于每个 UICollectionView,水平和垂直具有动态单元格高度。 在可配置项目中,可以配置倾斜大小,倾斜方向,倾斜角度,滚动方向,行距,项目大小以及排除第一个或最后一个单元倾斜。

67830

UICollectionView iOS 13以下删除动画crash

问题反馈 线上突发一个Top1crash告警,场景是UICollectionView在删除时候触发。...用户点击cell跳转界面后,又触发了原来UICollectionViewcell删除动画; 从slardar(APM)聚合信息,可以看到: 4、最后页面是并不是原来UICollectionView...用iOS 12设备找到复现路径: 先正常触发UICollectionView初始化和cell加载 => 从UICollectionView触发界面跳转,进入下一级界面 => 触发删除Cell业务逻辑...这是UICollectionView内部对动画前后数量校验,iOS 12及以下系统会有NSAssert断言触发;iOS 13开始没有NSAssert,但是同样会有异常Log。...图片 这个也可以解释一个奇怪现象,如果在移除数据之前调用一遍numberOfItemsInSection:,即使按照原来复现路径也不会crash。 因为第一行更新了缓存为正确数量。

1.7K30

iOS流水布局UICollectionView简单使用引实现结

其实看代码也会发现两者之间有着惊人相似。 自定义Cell 根据UITableView经验。...控制器 接着我们来创建UICollectionViewUICollectionView和UITableView相同之处在于它们都是由DataSource填充内容并有Delegate来管理响应,并且都实现了循环利用优化...不同之处在于UICollectionView需要一个布局参数来决定cell是如何布局,默认是流水布局,也就是我们最常见形式,也就是上面图里形式;此外,UICollectionView除了垂直滚动,...代码中注释了一行,就是用来设置滚动方向为水平,效果如下: 同样内容,滚动方式变化后,呈现效果也会变化。...使用方式,就像UITableView可以简单也可以做非常多样,UICollectionView也是一种乍看很平常但可以容纳非常多想象力布局方式,只要善加利用就可以做出很好效果,当然,什么时候用UICollectionView

1K00

iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局

iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局 一、引言         前面的博客介绍了UICollectionView相关方法和其协议中方法,但对布局管理类...UICollectionView简单使用:http://my.oschina.net/u/2340880/blog/522613  UICollectionView相关协议方法:http://my.oschina.net...二、将九宫格式布局进行升级         在第一篇博客中,通过UICollectionView,我们很轻松完成了一个九宫格布局,但是如此中规中矩布局方式,有时候并不能满足我们需求,有时我们需要每一个...: 设置行与行之间间距最小距离 @property (nonatomic) CGFloat minimumLineSpacing; 设置列与列之间间距最小距离 @property (nonatomic...) CGFloat minimumInteritemSpacing; 设置每个item大小 @property (nonatomic) CGSize itemSize; 设置每个Item估计大小,一般不需要设置

1.9K30

iOS 面试策略之系统框架-UIScrollView及其子类

请说明 UITableViewCell 重用机制 关键词:#UITableViewCell #reuseIdentifier UITableView 一行就是 UITableViewCell。...比如具体 item 尺寸大小, item 之间间距,header 和 footer 大小和间距,以及 UICollectionView 滚动方向。...拓展知识 5.代码实现:实现一个 10 行列表,每行随机显示一个 0 – 100 之间整数。用户可以删除、移动任何一行,下拉则列表中数字重新刷新。...第一步,实现一个 10 行列表,每行随机显示 0 到 100 之间整数。...由于瀑布流导致尺寸变化我们重写 contentSize。其中宽度一般情况我们是可以确定,它取决于每个item宽度,一行几个 item,以及 contentInset 值。

2.6K21

iOS 多section瀑布流实现(swift)

基于 UICollectionViewFlowLayout,实现一个支持多 section 瀑布流组件  最近因项目需求,写了一个支持多 section 瀑布流实现组件,完全基于 swift...(PS:瀑布流实现原理其实挺简单,网上现有的教程一抓一大把,我也懒得复述了。。。) 稍微整理了下,让这个小组件尽量做到集成简单快捷。 1....初始化  因为基于 UICollectionViewFlowLayout 实现,所以该 flowLayout 初始化调用流程与系统无异,只需要遵循 WaterfallMutiSectionDelegate...let layout = WaterfallMutiSectionFlowLayout() layout.delegate = self let collection = UICollectionView..., layout: WaterfallMutiSectionFlowLayout, section: Int) -> CGFloat ---- 最后附上demo链接:https://github.com

1.8K10

iOS开发中利用UICollectionView创建文字轮播控件

https://blog.csdn.net/u010105969/article/details/79912517 背景: 公司项目中有一个需求:在首页上添加一个纵向滚动文字轮播广告。...手动敲代码利用UITableView实现具有需求效果控件,可当UITableView滑动到最后一个cell再滑动到第一个cell时候出现问题(并不能很流畅地从最后一个cell滑动回第一个cell)。...网上再搜索相关demo,发现了利用UICollectionView实现该效果一个demo。发现此demo效果很好、代码易于理解、可扩展性高。 自己手动敲一个demo实现需求效果。...手动敲demo: 先在当前控制器view上添加一个UICollectionView,每个item大小等于UICollectionView大小。...再添加一个定时器,每隔一定时间让UICollectionView进行滚动。

1.3K20

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

UICollectionView 开发系列第五篇,这也是该系列计划写最后一篇啦!...当然,如果苹果开发者团队推出了关于 UICollectionView 技术或者是我在开发中发现了新技术点,我还是会持续更新这个系列,最终目的是我希望通过这个系列文章能把 UICollectionView...<numberOfSections { // 2.1 获取这个 section 第一个以及最后一个 item 布局属性 guard let numberOfItems...最后,我们来看下最终效果: 最后 关于 UICollectionView 系列整理,到今天就要短暂划上一个句号了,在写这个系列之前,我对 UICollectionView 想法就是:无非就是比...老样子,按照国际惯例,,最后附上项目工程地址: https://github.com/ShenJieSuzhou/SwiftScrollBanner

1.9K10

手把手带你撸一个网易云音乐首页(三)

,第一个冒出来想法就是在 Cell 中放置 UICollectionView,它布局也很简单,直接用系统提供即可,不需要我们去自定义布局。...,然后通过 proposedContentOffset 位移坐标和 item 宽度大小来计算出当前滚动页码;如果小于那个固定值,则不发生分页 最后记录最新偏移坐标,然后返回 UICollectionView...,我已经将实现这个效果教程写出来了,查看此文即可:使用 UICollectionView 实现分页滑动效果 音乐日历 UI 如图: image 音乐日历效果,不需要支持横向滚动,所以这里可以选择在...播客 终于讲到最后一个 UI 了,先看下效果: image 经历过构建上面这么多 UI 后,想必看到这个效果,大家都心知肚明了,还有比用 UICollectionView 更简单方式了吗?...这一神器实现了这些效果;最后,实现了简单搜索功能。

2.3K10
领券