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

iOS开发之UICollectionViewDataSourcePrefetching

iOS10,苹果为UICollectionViewCell引入了Pre-Fetching预加载机制用于提升它性能。...翻译文档)文章很多,有干货Demo很少,于是乎自己摸索了一下,写了一个简单案例,在此记录并分享一下。...:prefetchItemsAtIndexPaths 方法和collectionView:cancelPrefetchItemsAtIndexPaths 方法(可选) 3、将第1步遵从协议类设置为...UICollectionView prefetchDataSource 属性 实现 一、创建UICollectionViewFlowLayout 自己写一个类继承自UICollectionViewFlowLayout...效果演示.gif 写在后面的话 1、这个新特性仍然需要探究 2、遇到一个坑:细心看的话可以发现字典是懒加载,如果直接在viewDidLoad初始化会在 weakSelf.imgs[currentURL

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

iOS流布局UICollectionView系列六——将布局从平面应用到空间

iOS系统控件,也并非没有这样先例,UIPickerView就是很好一个实例,这篇博客,我们就通过使用UICollectionView实现一个类似系统UIPickerView布局视图,来体会...二、先来实现一个炫酷滚轮空间布局         万丈高楼也是由一砖一瓦堆砌而成,我们完全模拟系统pickerView前,我们应该先将视图布局摆放这一问题解决。...而我们这次要讨论布局则不同,pickerView会随着我们手指拖动而进行滚动,因此UICollectionView一个item布局是不断变化,所以这次,我们采用动态配置方式,layoutAttributesForItemAtIndexPath...,并且每个Item添加了一个标签,标写是第几行。...,上面的逻辑刚好可以无缝对接,但是会有新问题,一开始运行,滚轮就是出现在最后一个item位置,而不是第一个,并且有些相关地方,我们也需要一些适配: viewController: //一开始将

1.4K20

Swift-低仿搜狐新闻标签页效果

用法简单介绍 ViewController就是一个首页普通控制器,当点击+时候,就会push到频道管理(也就是标签列表)页面。...ViewController里自定义了两个数组,频道(myChannels)和更多频道(moreChannels) 点击+跳转到频道管理页面的点击方法里面有一个回调方法,即:将选中频道、以及自定义后频道回传到此页面...,将选中Item移动到目标的Item时候,方法处理不是太好。...频道里面第一个Item本意是不希望他可以被移动,但是如果将其它Item移动到第一个位置依然可以,背离了初衷。...仔细观察了一下,《头条》或者《搜狐》更多频道里,如果将我频道Item移动到更多频道里,《搜狐》只是放在更多频道里面的最后一个位置,《头条》是放在第一个位置,并没有放哪里都行,突然又感觉自己又有点多此一举了

1.9K40

iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局

更加灵活进行布局,但都限制系统为我们准备好布局框架,还是有一些局限性,例如,如果要进行瀑布流似的不定高布局,前面的方法就很难满足我们需求了,如下: ?...这种布局无疑app应用更加广泛,商品展示,书架书目的展示,都会倾向于采用这样布局方式,当然,通过自定义FlowLayout,我们也很容易实现。...为了演示方面,这里不错更多封装,添加一个属性,直接让外界将item个数传递进来,我们把重心方法重写布局方法: @interface MyLayout : UICollectionViewFlowLayout...布局类,因此,collectionView进行UI布局前,会通过这个类对象获取相关布局信息,FlowLayout类将这些布局信息全部存放在了一个数组,数组是UICollectionViewLayoutAttributes...总之,FlowLayout类将每个item位置等布局信息放在一个数组collectionView布局时,会调用FlowLayout类layoutAttributesForElementsInRect

2.9K20

关于首页设计框架和一些细节处理分析

这是放置广告位 设计说目前也就四个 为了以后可以扩展 就做成如果超出四个就可以横向滚动 按钮高度随着后台返回尺寸自动自适应 如果返回元素都没有则隐藏这一栏 第三部分 ?...显示促销商品 栏目可以左右滑动切换 每一个栏目只有两个商品 倒计时结束就不显示 第六部分 ?...整体是一个 UICollectionView 上面是一个 Header 现在使用原来框架面临问题是 Header 那么多元素 都超出两屏幕了 自然要滚动了 之前是商品列表和 Header 可以显示一个屏幕...下面的商品列表可以切换频道 之前不可以切换 自己当时尝试写了1.0框架 后来无法满足我们设计这个界面需求 废弃了 就从 Github 找了几个开源库,看到他们首页我们很相似 开始是这样...因为下面的频道是横向滚动 设置方向之后 UICollectionView Header 就是最左边 不是我们要结果 ?

78820

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

CollectionView 一个 section cell。...{ return nil } 因为为了清晰比较每个需求变更,所以demo里每个需求都有一个ViewController,搞了个基类来创建collectionView和adapter...那么现在该如何去做,我们直接新增一个FavorCell,和对应一个FavorSectionController,根本不需要碰原有运行良好代码。...这是比较推荐实现方式,但并不是唯一,还有两种实现方式ListBindingSectionController(推荐实现)和只需要一个ListSectionController就能实现,已经demo...IGListKit还能非常方便实现多级列表、带多选功能多级列表。 当然一样事物不可能只有优点,IGListKit同样拥有缺点,就目前为止使用经历来看,主要这几个可能有点坑。

1.6K30

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

拓展知识 5.代码实现:实现一个 10 行列表,每行随机显示一个 0 – 100 之间整数。用户可以删除、移动任何一行,下拉则列表数字重新刷新。...关键词:#UICollectionViewLayout 面试当场实现一个瀑布流,不允许上网查询情况下算是十分困难了。而且代码量很大,所以我们这道题重在分析思路。...该方法需要我们针对每一个 item 设定 layoutAttribute。由于我们 prepare() 已经完成相应计算,此时只需返回对应 indexPath 特定属性即可。...完成这些设定之后,我们发现 UICollectionView 里每个 item 里高度需要从含有 UICollectionView ViewController 里获得。...为了避免循环引用,最好方法就是我们 UICollectionViewLayout 子类定义一个 protocol,然后让 ViewController 实现这个protocol,来完成高度获得

2.6K21

iOS实现UICollectionViewDataSource与Controller分离

之前每次用到UICollectionView时候都会都需要在Controller里面去实现DataSource & Delegate方法 单独Delegate方法还好不是很多, 但是再加上DataSource...就很臃肿了, 为了避免代码臃肿也减少ViewController代码量 我们可以将DataSource方法分离出去, 大致方法如下: -> 创建需要Model & 自定义Cell文件 -> 创建DataSource...类, 导入 Cell头文件并实现UICollectionViewDatasource -> Controller中导入Model & DataSource类 -> 创建DataSource类实例, 将数据传入...DataSource -> 创建UICollectionView, 将CollectionViewdatasource指给上面创建Datasource实例即可 下面举例示范: 为了简单 就只下一个自定义...使用方法 1 //创建CollectionView 2 - (void)createCollectionView { 3 4 self.dataSource = ({ 5

74210

Swift 项目 - Xib | StoryBoard 多人协作技巧

VC处置 视图初始样式应尽量Storyboard上属性面板设置,非极特殊情况,布局也应在Storyboard使用各种约束配合完成。...,绑定上面的类 右键这个Object,弹出菜单连线 右键CollectionView 设置 Delegate 和 DataSource 等连线 ViewController如需调用这个模块方法或者传参...拖入多个Object,并绑定不同模块控制类,相对于占位Container View和ChildViewController方法,Object方法传参或互相调用方面,更加简便。...这个问题其实问很模糊,也是咨询了很多人才知道,他们所谓问题不容易测试,是指如下两种情况: 修改或删除 @IBOutlet 变量名时,对应Storyboard未做处理,导致运行时崩溃,崩溃内容看不懂...这时可以全局搜素一下 搜出来结果可以看到,是Main.storyboard绑定了HomeController,Test.swift文件定义了该类,但是因为改名所以无法找到。

2K20

iOS开发 MVVM+RAC 使用Demo效果ReactiveCocoa简介Demo分析代码Demo地址

主要是因为一直跑面试。 终于还是在上海入职了! 由于项目原因最终还是入了MVVM+RAC坑 下面是正题。 Demo效果 使用MVVM+RAC请求网络数据 ?...demo.gif ReactiveCocoa简介 iOS开发过程,当某些事件响应时候,需要处理某些业务逻辑,这些事件都用不同方式来处理。...基础的话还是推荐这篇博文 讲都挺细 当然不爽的话可以试试这个视频版,也是某培训机构流出 Demo分析 本文使用是豆瓣API(非官方) Demo所要做功能很简单: 从网络请求数据,并加载到...UI。...代码 由于BlocksKit使用,当我们写Delegate和Datasource时 就不用分离函数,整个逻辑都能凑在一起,比如这样定义一个collectionView: - (void)initStyle

1.7K40

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

iOS流布局UICollectionView系列七——三维球型布局 一、引言         通过6篇博客,从平面上最简单规则摆放布局,到不规则瀑布流布局,再到平面圆环布局,我们突破了线性布局局限...,在后面,我们将布局扩展到了空间,Z轴上进行了平移,我们实现了一个类似UIPickerView布局模型,其实我们还可以再进一步,类比于平面布局,picKerView只是线性排列布局空间旋转与平移...,这次,我们更加充分了利用一下空间尺寸,来设计一个圆球布局模型。...scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x-10*320,scrollView.contentOffset.y);     } } 这里面的代码比较一篇博客并没有什么大改动...我们layout类,将代码修改成如下: -(void)prepareLayout{     [super prepareLayout];      } //返回滚动范围增加了对x轴兼容 -(CGSize

1.4K20

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

引 开发我们最常看到可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频展示界面,用UICollectionView来展现往往会更加方便。...本文就介绍纯用代码创建UICollectionView简单示例,效果如下图: 实现 如图所示,视图由一个个方块组成,每个方块中有一张图片以及一个标题文字。...首先看每个方块,也就是每个cell怎么呈现,这里cell明显是自定义,我们用一张图片填满cell,同时底部居中位置放置一个label。...为了显得真实一点,用了一个随机数来决定每个cell显示图片和文字,这样呈现时候就不会太过千篇一律。...不同之处在于UICollectionView需要一个布局参数来决定cell是如何布局,默认是流水布局,也就是我们最常见形式,也就是上面图里形式;此外,UICollectionView除了垂直滚动,

1K00

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

当然,如果苹果开发者团队推出了关于 UICollectionView 技术或者是开发中发现了新技术点,还是会持续更新这个系列,最终目的是希望通过这个系列文章能把 UICollectionView...答案当然是肯定 UICollectionView 控件我们管这叫 Supplementary View, 翻译过来就是 "追加视图",那 UICollectionView 该怎么实现给每个...接下来内容,你将会学到以下知识点: 1.如何在 UICollectionView 创建 Decoration View2.自定义布局属性,计算 section 背景图位置和大小3.实现 UICollectionView...(UIViewController)呈现了,但是为了更进一步体现 UICollectionView 强大,还实现了一个功能,那就是使得书架里书可以自由拖拽排序,这里就用到了另外一个知识点:手势...最后,我们来看下最终效果: 最后 关于 UICollectionView 系列整理,到今天就要短暂划上一个句号了,写这个系列之前,UICollectionView 想法就是:无非就是比

1.9K10

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

大家好,又见面了,是你们朋友全栈君。 一、先来看看最终效果吧 二、创建UI 1.首先我们viewcontroller创建一个UICollectionView....(nonatomic,assign)NSInteger cellCount;//cell总个数 @end 属性变量我们定义了一个 一个delegate,一个用于存放列高度数组,一个存放cell...:(NSIndexPath *)indexPath{ //通过delegate获取item大小,之前主控制器设置过了,其中layout是uicollectionview,所以传自身就可以了...在这个方法,我们首先通过delegate获得了主控制器设置过itemsize。...这个方法 prepareLayout 中进行了循环调用,循环了18次,也就是说每一个cell都需要进行布局,以便字典存储了每一个cell布局信息。

2.1K41

仿淘宝类电商秒杀分页控件(附源码)

实现: 知道了原理,那就开始构思: 1、实现思路是用UICollectionView来实现滚动菜单; 2、需要两个UICollectionView,UICollectionViewCell文字内容一样...,一个UICollectionView遮罩下面,一个遮罩上面; [self addSubview:self.collectionViewBottom]; [self addSubview:self.maskView...]; [self.maskView addSubview:self.collectionViewTop]; 4、遮罩上面的UICollectionView超出遮罩部分内容不显示出来; self.maskView.clipsToBounds...起初想法是用两种图片拼接起来,一张长方形,一张三角形,后来为了自定义性更高一点,改成了用UIBezierPath来进行绘制,代码如下: 自定义一个View继承自UIView: #import "GFMaskView.h...初衷其实就是把这个滚动菜单封装出来,后来发现使用这个菜单大部分情况都是和多个子控制器一起使用,所以就再进行了一步封装,把控制器逻辑都封装到了GFPageViewController控制器

1.3K20
领券