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

iOS流布局UICollectionView系列二——UICollectionView代理方法

iOS流布局UICollectionView系列二——UICollectionView代理方法 一、引言         在上一篇博客,介绍了最基本UICollectionView使用和其中我们常用属性和方法...,也介绍了瀑布流布局过程与思路,这篇博客是上一篇补充,来讨论关于UICollectionView代理方法使用。...下面的方法是可选实现: 虽然这个方法是可选,一般我们都会去实现,设置分区数 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView...*)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath; 长按菜单可以触发一下类复制粘贴方法,效果如下...indexPath withSender:(id)sender{     NSLog(@"%@",NSStringFromSelector(action)); } collectionView进行重新布局时调用方法

2K20

iOS流布局UICollectionView系列七——三维球型布局

iOS流布局UICollectionView系列七——三维球型布局 一、引言         通过6篇博客,从平面上最简单规则摆放布局,到不规则瀑布流布局,再到平面圆环布局,我们突破了线性布局局限...,在后面,我们将布局扩展到了空间,在Z轴上进行了平移,我们实现了一个类似UIPickerView布局模型,其实我们还可以再进一步,类比于平面布局,picKerView只是线性排列布局在空间上旋转与平移...,这次,我们更加充分了利用一下空间尺寸,来设计一个圆球布局模型。...以下是前几篇博客地址: 1.初识与简单实用UICollectionView:http://my.oschina.net/u/2340880/blog/522613 2.UICollectionView代理方法...在我们layout类,将代码修改成如下: -(void)prepareLayout{     [super prepareLayout];      } //返回滚动范围增加了对x轴兼容 -(CGSize

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

iOS流布局UICollectionView系列五——圆环布局实现

iOS流布局UICollectionView系列五——圆环布局实现 一、引言         前边几篇博客,我们了解了UICollectionView基本用法以及一些扩展,在不定高瀑布流布局...这种布局方式在apple官方文档也有介绍,是UICollectionView一个应用示例。...是一个布局抽象基类,我们要使用自定义布局方式,必须将其子类化,可能你还记得,我们在进行瀑布流布局时候使用过UICollectionViewFlowLayout类,这个类就是继承于UICollectionViewLayout...类,系统为我们实现好一个布局方案。...,我们就实现哦圆环布局,随着item多少,布局会自动调整,如果不是UICollectionView功劳,实现这样功能,我们可能要写上一阵子了^_^。

1.4K20

UICollectionView

平常我在业务开发,绝大部分情况都是使用UITableView,而UICollectionView则是在极少情况下才会去使用,这就导致了我对UICollectionView略感陌生。...UICollectionViewcollectionCell支持横向&纵向布局,比UITableViewtableCell只有纵向布局要更加灵活。...UITableViewrow,对应到UICollectionView中就是item,因为一行可以展示多个cell,使用row(行)不能准确地表达。...:(NSIndexPath *)indexPath; 我们知道,UITAbleViewCell是有四种默认样式,但是UICollectionViewCell是没有默认样式,所有的控件都需要自定义添加到...layout,如果我们想要实现一个自定义布局,那么就新建一个继承自UICollectionViewLayout子类,然后去自定义。

1.1K20

iOS流布局UICollectionView系列一——初识与简单使用UICollectionView

iOS流布局UICollectionView系列一——初识与简单使用UICollectionView 一、简介         UICollectionView是iOS6之后引入一个新UI控件,它和...cell特性外,CollectionViewItem大小和位置可以自由定义 4、通过layout布局回调代理方法,可以动态定制每个item大小和collection大体布局属性 5、更加强大一点...        在了解UICollectionView更多属性前,我们先来使用其进行一个最简单布局试试看,在controllerviewDidLoad添加如下代码:     //创建一个layout...cell方法,没有再提供可以返回nil方式,并且在UICollectionView回调代理,只能使用从复用池中获取cell方式进行cell返回,其他方式会崩溃,例如: //这是正确方法 -...则会在一列充满后,进行第二列布局,这种方式也被称为流式布局 三、UICollectionView常用方法和属性 //通过一个布局策略初识化CollectionView - (instancetype

2.7K20

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

装饰视图 这是每个section背景,比如iBooks书架就是这个         不管一个UICollectionView布局如何变化,这三个部件都是存在。...再次说明,复杂UICollectionView绝不止上面的几幅图,关于较复杂布局和相应特性,我会在本文稍后和下一篇笔记中进行一些深入。...但值得注意时,在UICollectionView,不仅cell可以重用,Supplementary View和Decoration View也是可以并且应当被重用。...在iOS5,Apple对UITableView重用做了简化,以往要写类似这样代码: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier...这个特性很受欢迎,因此在UICollectionViewApple继承使用了这个特性,并且把其进行了一些扩展。

34330

WWDC2016 Session笔记 - iOS 10 UICollectionView新特性

UITableViewCellPre-Fetching预加载 在iOS 10UITableViewCell也跟着UICollectionView一起得到了性能提升,一样拥有了Pre-Fetching...layout.estimatedItemSize = CGSize(width:50,height:50)复制代码 这会告诉UICollectionView我们想要开启动态计算内容布局。...如果flow layout可以用数学方法动态计算布局,而不是根据我们给size去布局,那会是件很酷事情。 iOS 10就引入了新API来解决上述问题。...在iOS 9,引入了UICollectionViewInteractive Reordering,在今年iOS 10,又加入了一些新API。...在上图中,我们可以看到,我们即使任意拖动cell,整个界面也会重新排列,并且我们改变了cell大小,整个 UICollectionView 也会重新动态布局

1.9K30

iOS学习——tableview带编辑功能cell键盘弹出遮挡和收起问题解决

self.view实际上就是对应UITableView或UICollectionView,所以会出现一些莫名其妙bug,显示不出来或者显示位置不对。...然而,避免将HUD添加到具有复杂视图层次结构某些UIKit视图(如UITableView或UICollectionView)是一个好主意。...♀️,我们项目汇总因为用到了MBProgressHUD框架,所以只能是用UIViewController上布局一个UITableView来实现,这样我们再self.view上布局MBProgressHUD...言归正传,下面就说回到我们要解决问题,在UITableViewcell,系统自带UITableViewCell格式没有自带UITextField或UITextView这种可以编辑区域,而这种类型...,在这个过程我们需要回传什么信息,才能保证我们可以对我们控制器tableview进行控制。

3.8K80

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

,所以我们可以在 BaseViewCell 这个基类中去实现这个头视图: /// UITableViewCell 基类 class BaseViewCell: UITableViewCell {...具体实现该效果代码在这里我就不做多阐述了,因为在我之前文章,我已经将实现这个效果教程写出来了,查看此文即可:使用 UICollectionView 实现首页卡片轮播效果 圆形菜单入口 该效果实现起来很简单...,第一个冒出来想法就是在 Cell 中放置 UICollectionView,它布局也很简单,直接用系统提供即可,不需要我们去自定义布局。...我们知道在 UICollectionView 属性,有一个分页属性:isPagingEnabled,当设置成 true 时,每次滚动位移量等于它自身 frame 宽度;当不设置这个分页属性,它默认值是...Cell 样式有不同之处但也有相似的地方,所以我们创建了一个基类 BaseViewCell, 用于展示 Cell 相同地方;然后我们在各个 Cell 构建不同样式 UI,利用 UICollectionView

2.2K10

教你写个多表视图

把当前控制器作为一个父控制器,添加三个UITableViewController实例作为子控制器,把父控制器 scrollView 作为容器,然后添加子控制器 tableView 作为子视图...解决办法是可以自己写个重用机制,不过这显然没必要,用自带重用机制UICollectionView应该是个更好选择。...然后要用 layout 控制布局,用最常用 UICollectionViewFlowLayout 就行了,设置单元格宽高,既然是翻页,宽肯定是跟屏幕等宽,高度就看你需求了,但是不要超过 collectionView...因为这边只是个 Demo,所以我直接在 cell 显示cellData值,那cellData 值在哪里设置呢?...这边 cell 是会被复用,在翻到第三页时,会复用第一页 cell ,第四页复用第二页 cell……依此类推,所以需要给 cell tableView调用 reloadData方法,不然就算改变了表数据

1.3K30

高仿ios斗鱼界面

弹性/韧性 解决易碎二进制接口问题 Fragile binary interface problem是面向对象编程语言通病 如果在程序引入了外部库 我们程序中使用并继承了该外部库类 如果外部库有改动...新API设计规范 Swift3.0 发布了新语言设计规范 其中在Swift3.0标准库和核心库将会遵循这个设计规范。...规范地址 从函数参数删除var关键字 func doSomethingWithVar(var i: Int) { i = 2 // This will NOT have an effect...} } 允许直接引用(Default, Private, Repeat)关键字成员 在Swift3.0之前我们引用default和repeat成员时 需要这样写: let cell = UITableViewCell...`repeat` Swift3.0时 允许我们直接访问default repeat 关键字成员: let cell = UITableViewCell(style: .default, reuseIdentifier

74050

iOS开发之DiffableDataSource

在 iOS 13 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource,让开发者可以更简单高效实现 UITableView、UICollectionView...新刷新方法为 apply,通过使用 apply 方法无需计算变更 indexPaths,也无需调用 reload,即可安全地在主线程或后台线程更新 UI, 仅需简单将需要变更后数据通过 NSDiffableDataSourceSnapshot...tableView) { (tableView: UITableView, indexPath: IndexPath, city: City) -> UITableViewCell...query.isEmpty else { return true } return name.contains(query) } } 点击事件,获取 cell 方式也和之前不一样...UITableView 关键使用步骤,UIColletionView 使用类似,完整案例详见下面的链接: UITableView案例 UICollectionView案例

1.5K10

ios仿斗鱼界面

弹性/韧性 解决易碎二进制接口问题 Fragile binary interface problem是面向对象编程语言通病 如果在程序引入了外部库 我们程序中使用并继承了该外部库类 如果外部库有改动...新API设计规范 Swift3.0 发布了新语言设计规范 其中在Swift3.0标准库和核心库将会遵循这个设计规范。...规范地址 从函数参数删除var关键字 func doSomethingWithVar(var i: Int) { i = 2 // This will NOT have an effect...} } 允许直接引用(Default, Private, Repeat)关键字成员 在Swift3.0之前我们引用default和repeat成员时 需要这样写: let cell = UITableViewCell...`repeat` Swift3.0时 允许我们直接访问default repeat 关键字成员: let cell = UITableViewCell(style: .default, reuseIdentifier

86190

RunLoop总结:RunLoop应用场景(三)滚动视图流畅性优化

因为跟UITableView、UICollectionView滑动优化有关,就顺便总结一下会影响UITableView、UICollectionView等视图滑动流畅因素。...维基百科Event loop(可以看看这篇文章了解一下事件循环) 应用场景 让UITableView、UICollectionView等延迟加载图片。...有一个非常好关于设置图片视图图片,在RunLoop切换Mode时优化例子:RunLoopWorkDistribution 先看一下界面布局: ?...(这一点,相信大家都知道,要尽量避免在主线程执行,一般都是创建一个子线程来执行,然后再回到主线程) 2.动态计算UITableViewCell高度,时间过久 在iOS7之前,每一个Cell高度,...3.界面背景色透明视图过多 为什么界面背景色透明视图过多会影响UITableView流畅?

2.1K41
领券