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

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

这和tableView有些类似,又有些不同,因为tableView除了注册cell的方法外,还可以通过临时创建来做: //tableView在从复用池中取cell的时候,有如下两种方法 //使用这种方式如果复用池中无...UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier; //6.0后使用如下的方法直接从注册的cell类获取创建,如果没有注册...同样,如果内容的大小超出一屏,和tableView类似是可以进行视图滑动的。...//这个是水平布局 //layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; 这样系统会在一行充满后进行第二行的排列,如果设置为水平布局...*)indexPath; //获取所有可见cell的数组 - (NSArray *)visibleCells; //获取所有可见cell

2.7K20

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

: 如果3回答为是,那么选中cell         状态控制要比以前灵活一些,对应的高亮和选中状态分别由highlighted和selected两个属性表示。...1.5 关于Cell         相对于UITableViewCell来说,UICollectionViewCell没有这么多花头。...,大部分情况下更偏向于图像而非文字,因此需求将会千奇百怪。...重用         UICollectionViewCell其实只实例化了能应付一屏显示范围的对象实例,而在cellForItemAtIndexPath方法中重复更新此实例的业务数据来达到显示不同Cell...而对于业务数据的绑定与页面控件更新逻辑,笔者建议在对应业务对象的Set方法中实现,例如上面的HJInfoCellVM业务对象,就在其Set方法中实现就可以了,示例如下: - (void)setInfoVM

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

抛弃UITableView,让所有列表页不再难构建

UICollectionView的数据驱动UI框架,目前在github上有9k+ star,被充分利用在Instagram App上,可以访问外国网站的同学可以去体验一下,看看Instagram的体验,想想如果那些页面让小明用传统方式实现...ListAdapter 适配器,它将collectionview的dataSource和delegate统一了起来,负责collectionView数据的提供、UI的更新以及各种代理事件的回调。...class FavorCell: UICollectionViewCell { @IBOutlet weak var favorBtn: UIButton!...} } 这里把点击commentCell的删除按钮事件代理出来给CommentSectionController处理,在闭包里先对cellModels数组删除,然后调用IGListKit的批量更新操作...的滑动,二是把UITableView嵌套进UICollectionViewCell,这个可能得好好封装一下了。

1.6K30

打造开源第一 iOS 图片浏览器 (支持视频)闲谈

YBImageBrowser 2.x 版本已更新如果项目中的图片浏览器过于蹩脚,替换掉它吧。笔者会抽时间维护和升级,打造开源第一是追求也是激励。...UICollectionViewCell 作为主要显示内容的载体,组件实现了两个,一个支持图像,一个支持视频。...二、面向协议的设计模式 显示内容的载体目前有图像和视频,笔者先是考虑过写一个 UICollectionViewCell 的基类,利用多态来做子类的自定义,然而这样会带来问题:一是若组件使用者想要拓展内容载体但却不便于继承这个基类...;二是继承本身带来的问题,虽然子类之间直接接触,但是它们有同一个父类,若想组件和这些子类之间直接耦合,必然要频繁的对这个基类做更改,牵一发而动全身,并且对于方法重载来说,不好准确的限定是否必须重载,...换个思路来思考,组件主体对内容载体也就是 UICollectionViewCell 的关系应该是无耦合的,就像上面多态的思路,组件只关心这个基类,而直接和子类交互。

1.5K40

小问题记录

更新的流程是这样的:更新时,先在新的路径里安装新程序,然后把旧程序文件夹里的配置文件之类的文件拷贝到新的路径里去,然后删除旧程序 所以,如果数据库里保存的是绝对路径,那么软件会找不到文件。...如果需要相对自己的中心点,则需要用bound.origin来计算 UIView加外边框 reference CGFloat borderWidth = 2.0f; self.frame = CGRectInset...(void)viewWillAppear:(BOOL)animated { //不调用super方法 屏蔽自动滚动 //[super ...]; } 判断UITableViewCell是否可见...NSIndexPath *index in indexes) { if (index.row == 0) { return YES; } } return NO; } UICollectionViewCell...构造 UICollectionViewCell 不能用-(id)init{},要用-(id)initWithFrame:(CGRect)frame或者initWithCoder() ---- NSArray

3.4K21

iOS小经验:UITableView&UICollectionView设置单元格的默认选中状态

一个思路 通过实现选中和非选择的代理,以在适当的时机进行UI更新操作。 3....void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated; 注意的是: 上述代码强制设置某单元格选中或者选中那一刻...比较 比如,下面两种方案 NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; UICollectionViewCell...手动执行代理 上述两张方案的区别在于,设置选中状态完后,屏幕点击其它cell时,一个执行原cell的didDeselect方法,一个执行。...如果你真的想在改变选中状态的时候执行didSelect代理,那么可以手动执行: NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection

3.5K50

iOS 瀑布流实现「建议收藏」

如果设置的话,布局就不能体现出来,就是说最终的界面是显示不出来的,因为没有通过主控制器显示出来。对于高度的数组,我们首先将里面的元素都设置为0,因为在刚开始的时候第一个item距离顶端的距离就是0。...设置好这一个item的frame之后,我们需要更新列高度数组中的数据,以便于下一次比较还是找出高度最小的列进行插入。...我们需要重写两个方法: layoutAttributesForElementsInRect 和 layoutAttributesForItemAtIndexPath #pragma mark - 返回可见...我们可以用 CGRectIntersectsRect 这个方法来判断,这个方法的意思是如果两个rect没有交集的话,就返回 no,如果有交集就返回yes。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.2K41

JS深入浅出 - requestAnimationFrame

2. requestAnimationFrame(callback) 2.1 定义 告知浏览器在下一次重绘前,调用其回调函数来更新动画。...2.2 内部执行机制 首先判断 document.hidden 属性是否可见(true),可见状态下才能继续执行以下步骤。 浏览器清空回调队列中的动画函数。...setTimeout 的执行只是在内存中对图像属性进行改变,这个改变必须要等到下次浏览器重绘时才会被更新到屏幕上。...如果和屏幕刷新步调不一致,就可能导致中间某些帧的操作被跨越过去,直接更新下下一帧的图像,即掉帧。...早期浏览器会对切换至后台或活跃的标签页中的计时器执行限流,导致计时器时间不精确,此外计时器在后台仍会进行计时工作,执行动画任务,此时刷新动画是完全没有意义的。

1.4K30

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

当然,如果苹果开发者团队推出了关于 UICollectionView 的新的技术或者是我在开发中发现了新的技术点,我还是会持续更新这个系列,最终的目的是我希望通过这个系列的文章能把 UICollectionView...self.view.frame.size.height), collectionViewLayout: flowLayout) // 注册 Cell collectionView.register(UICollectionViewCell.self...func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell...如果你的产品经理给你提了一个需求,要求你要为 UICollectionView 的 section 设置背景, 但当你查阅文档的时候,你就会发现 UICollectionView 是无法通过属性设置来为...计算背景图布局属性 为了实现这个书架分层的样式,我们需要为每个 section 设置一个背景图,如: 但是由于每个 section 的坐标位置是固定的,于是我们就需要在准备阶段将所有 section

1.9K10

谷歌云端硬盘 文件:复制

ignoreDefaultVisibilityboolean是否忽略所创建文件的域的默认可见性设置。域管理员可以选择默认使所有上载的文件对域可见;此参数绕过该请求的行为。权限仍然从父文件夹继承。...如果达到限制,请尝试删除固定的修订。(默认值:false)ocrLanguagestring图像导入期间用于OCR处理的语言提示(ISO 639-1代码)。...supportsAllDrivesboolean 警告:推荐使用此项目。 推荐使用-请求的应用程序是否同时支持“我的驱动器”和共享驱动器。此参数仅在2020年6月1日之前有效。...(默认值:false)supportsTeamDrivesboolean 警告:推荐使用此项目。 推荐使用,而是使用supportsAllDrives。...更新请求必须使用addParents和removeParents参数来修改父级列表。 可写的propertiesobject对所有应用程序可见的任意键值对的集合。

1.6K20
领券