最简单的UICollectionView就是一个GridView,可以以多列的方式将数据进行展示。...1.3 关于重用 为了得到高效的View,对于cell的重用是必须的,避免了不断生成和销毁对象的操作,这与在UITableView中的情况是一致的。...在iOS5中,Apple对UITableView的重用做了简化,以往要写类似这样的代码: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier...这个特性很受欢迎,因此在UICollectionView中Apple继承使用了这个特性,并且把其进行了一些扩展。...在对collection view的重用ID注册后,就可以像UITableView那样简单的写cell配置了: MyCell*cell=[cvdequeueReusableCellWithReuseIdentifier
HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。...QuickRearrangeTableView - 基于UITableView的快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。...LxGridView-oc LxGridView-swift - 利用UICollectionView模仿iOS系统桌面图标的交互,作用如动图。...Context-Menu.iOS - 可以为应用程序的菜单添加漂亮的动画内容,可自定义图标,并可根据自己的喜好设计单元格和布局。...更赞的是额外附了详细开发教程如何在Swift中制作Tinder-Like Koloda动画网页链接 .Yalantis出品动画程序款款精品。
场景需求 一个表格视图(或者宫格视图)中,当一个单元格被选中时设置彩色样式,选中其它单元格时设置灰色样式。 2. 一个思路 通过实现选中和非选择的代理,以在适当的时机进行UI更新操作。 3....UITableView 3.1 通过屏幕点击改变的选中状态回调给代理 //选中 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath...: 上述代码强制设置某单元格选中或者不选中那一刻,都不会回调tableview的选中代理方法,也不会发出通知UITableViewSelectionDidChangeNotification。...UICollectionView 4.1 通过屏幕点击改变的选中状态回调给代理 //选中 - (void)collectionView:(UICollectionView *)collectionView...cell的时候,UITableView并不会执行- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath
Eureka.swift - Eureka 是 XLForm 的 Swift 的移植版本, 一个可以帮助开发者们快速构建 iOS 各种复杂表单的库, 具有较高的可扩展性, 方便自定制样式。...HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。...QuickRearrangeTableView - 基于 UITableView 的快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。...LLNoDataView - 超简单的空数据提示通用View支持UIScrollView、UITableView、UICollectionView、UIWebView。...微博cell自动布局 - 使用autoLayout对微博的cell进行自动布局,自适应cell的高度。
在刷新数据源时,只要重新计算diff,计算进行局部刷新,可以大大提高UICollectionView的性能。...特别是去TableView化的趋势,这样来看UICollectionView将会成为以后自定义UI的主流。...PencilKit为iOS应用程序提供了一个绘图环境,该环境可以从Apple Pencil或用户的手指中获取输入,并将其转换为您在iOS或macOS中显示的高质量图像。...具体可以参考https://www.jianshu.com/p/0cfe5eebbb6a,是SwitchUI里面的一个库, 这里有个细节,框架中的PKCanvasView是可以进行绘图的内部区域。...今年的API增加了Catalyst对在iOS中处理物理键盘事件的支持,这对设备的用户行为上报是个利好消息,此外,tvOS的焦点引擎API现在可用于Mac Catalyst中的应用程序,UICollectionView
它非常易于使用-只需下载 TKSwitcherCollection 并将其拖放到项目中,就可以了! 目前,有四种不同的开关可用: • TKSimpleSwitch:可在 iOS 上使用的传统开关。...• TKExchangeSwitch:通过触摸更改的开关。 • TKSmileSwitch:具有两个值的开关:悲伤和快乐。 • TKLiquidSwitch:具有液体样式动画的开关。...现在,您可以创建一个继承自 ExpandingViewController 的 UIViewController,注册在第一步中创建的单元格,并添加UICollectionViewDataSource。...中显示倾斜的单元格。...该库可用于每个 UICollectionView,水平和垂直具有动态单元格高度。 在可配置的项目中,可以配置倾斜大小,倾斜方向,倾斜角度,滚动方向,行距,项目大小以及排除第一个或最后一个单元倾斜。
子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...} } 静态单元格 需要使用 UITableViewController。 直接在 storyboard 中布局,不需要使用数据源方法,但如果需要使用到代理方法,仍然需要在控制器中实现相应的方法。...UITableViewDiffableDataSource 在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView...iOS 14 中 UICollectionView 的功能得以继续增强,可以在一定程度上替换 UITableView。...(frame: view.frame, collectionViewLayout: layout) } } 注册Cell 可以像 UITableView 一样,填充 Cell 的内容。
引 开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。...如果熟悉UITableView的话,其实很多地方都是类似的,甚至可以说UITableView是一种特殊的UICollectionView,正如正方形是一种特殊的矩形一样,UITableView就是一种每行只放一个方块的...为了显得真实一点,我用了一个随机数来决定每个cell显示的图片和文字,这样在呈现的时候就不会太过千篇一律。...控制器 接着我们来创建UICollectionView,UICollectionView和UITableView的相同之处在于它们都是由DataSource填充内容并有Delegate来管理响应的,并且都实现了循环利用的优化...接下来就是对于DataSource和Delegate的设置,这和UITableView非常像,DataSource决定显示的效果,Delegate处理点击等响应,直接看代码: #pragma mark
UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。...一般情况下我们对 UIScrollView 的操作,例如 addSubview 这样的操作都是在 contentView 上进行。...否则每次滑动,UITableView 都会重新生成一个新的 UITableViewCell,这样极其浪费资源,而且容易造成主线程卡顿。 3....UICollectionView 中的 Supplementary Views 和 Decoration Views 分别指什么?...例如用惰性加载只处理用户想看到的内容,或是用 ASDK 进行智能预加载。这样可以进一步提高用户体验,并使整个滑动的性能效率最大化。 10.如何用 UICollectionView 实现瀑布流界面?
把当前的控制器作为一个父控制器,添加三个UITableViewController的实例作为子控制器,把父控制器中的 scrollView 作为容器,然后添加子控制器中的 tableView 作为子视图...这样做有一个问题,一旦有十几二十个表的话,内存就要爆炸了。解决的办法是可以自己写个重用机制,不过这显然没必要,用自带重用机制的UICollectionView应该是个更好的选择。...bounces = false 这样滑动的时候就会有翻页的段落感,滑到边界的时候也不会有回弹效果。...然后要用 layout 控制布局,用最常用的 UICollectionViewFlowLayout 就行了,设置单元格的宽高,既然是翻页,宽肯定是跟屏幕等宽,高度就看你需求了,但是不要超过 collectionView...这样就完成了一个多表视图,实际项目一般会在 table 上方放个小滑块指示器什么的,也很简单,只要在cellForItemAtIndexPath方法中根据indexPath.section来设置滑块位置就好了
,是这样的。...---- 也可以自定义一个 继承于 UICollectionViewFlowLayout 的约束,在自定义的约束中实现更强大的功能。比如这样的: ?...) 开始在特定的索引路径上对cell(单元)进行Interactive Movement(交互式移动工作)。...使用UITableView,这种方式应该是最易想到的,因为需要展现几列就用几个tabelview就ok了,而且不需要考虑重用,因为苹果已经做好了,只需要考虑如何在几列tabelView滑动的时候,保持同步不出现...使用UICollectionView,UICollectionView在iOS6中第一次被介绍,它与UITableView有许多相似点,但它多了一个布局类,而实现瀑布流,就与这个布局类有关。
在 iOS 13 中 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource,让开发者可以更简单高效的实现 UITableView、UICollectionView...下面以 UITableView 为例进行讲解。 实现步骤 使用 DiffableDataSource 配置当前 UITableView 的数据源。...Model 必须具有唯一 Identifier,且遵循 Hashable 协议。...query.isEmpty else { return true } return name.contains(query) } } 点击事件中,获取 cell 的方式也和之前不一样...UITableView 的关键使用步骤,UIColletionView 使用类似,完整案例详见下面的链接: UITableView案例 UICollectionView案例
正如大多数 iOS 开发人员所知,显示滚动数据是构建移动应用中常见的任务,Apple 的 SDK 提供了 UITableView 和 UICollectionVIew 这俩大组件来帮助执行这样的任务。...为了改善应用程序体验,在 iOS 10 上,Apple 对 UICollectionView 和 UITableView 引入了 Prefetching API,它提供了一种在需要显示数据之前预先准备数据的机制...多年来,像 Instagram, Twitter 和 Facebook 这样的社交媒体公司都使这种技术。...;最后用 UITableView 来显示返回的数据,在 viewDidLoad 中先请求网络数据来获取一些初始化数据,然后再利用 UITableView 的 Prefetching API 来对数据进行预加载...苹果提供了很多为应用程序实现并发的方式,例如 GCD,我在这里对 Cell 上的图片进行异步加载使用的就是它。
最近在项目中经常用到UITableView中的cell中带有UITextField或UITextView的情况,然后在这种场景下,当我们点击屏幕较下方的cell进行编辑时,这时候键盘弹出来会出现遮挡待输入的...中的cell当有键盘弹出的时候表单整体会自动进行上移,我们需要编辑的区域正好可以在键盘的上方,这样我们正好也可以看到我们编辑的内容,方便我们进行修改和调整具体内容。 ...框架官方文档中就有提到要避免将HUD添加到具有复杂视图层次结构的某些UIKit视图(如UITableView或UICollectionView),UITableViewController和UICollectionViewController...中的self.view实际上就是对应的UITableView或UICollectionView,所以会出现一些莫名其妙的bug,显示不出来或者显示的位置不对。...然而,避免将HUD添加到具有复杂视图层次结构的某些UIKit视图(如UITableView或UICollectionView)是一个好主意。
在这两部分 AsyncDisplayKit 2.0 教程中,你将掌握使用ASDK构建一个实用的和动态的应用程序的所有要素。在第一部分中,你将要学习一些在你构建应用程序时可以用到的宏观思想。...构建并运行以查看包含 UITableView 动物列表的应用程序。...ASCollectionNode and ASTableNode:Node 等效于 UICollectionView 和 UITableView,其子类实际上保留在底层。...要注意的是这个方法返回的是一个 ASCellNodeBlock,ASTableNode 维持着内部所有的 Cell,每个 indexPath 对应一个 block,并且随时准备进行初始化。...现在,你就需要考虑如何在两个方向上动态加载内容。同时,还要对每个设备进行优化。 还记得告诉你 ASRangeController 是不重要的吗?现在,这将是我们的重点。
这里有8个很棒的项目来训练你的编码肌肉!我们的目标是用你喜欢的技术堆栈构建每个应用程序。使用任何你想要的内容来保证没有任何冲突! Project #1: Trello Clone ?...Demo :https://trello-copy-ddiaorohmd.now.sh/ 你将clone一个Trello: 路由 拖放 创建新对象(板子、列表、卡片) 处理输入和验证 客户端路径:如何使用本地存储...,将数据保存到本地存储中,从本地存储中读取数据。...如果你能创建复杂的应用程序,你就可以脱颖而出。 你将学到什么: 拖放API 创建丰富的用户界面 Project #8: A messenger clone (native app) ?...理解本地应用程序和Web应用程序的工作方式会让你很容易从人群中脱颖而出。 你将学到什么: Web套接字(即时消息) 本地应用程序是如何工作的。 布局是如何在本地工作的。 本地应用程序的路由。
像码匠这样的低代码开发工具还具有审计日志、数据源管理、查询库等附加功能来帮助快速扩展部署应用。...)的基础上开发各种前端应用程序,以鼓励业务协作并赋予内部团队权力。...低代码平台的敏捷性还允许员工随时根据自己的想法进行创新,不管是普通开发者还是公民开发者,都能在企业内部建立一个简单的应用开发生态系统。...降低运营成本 低代码平台有助于优化资源的利用,如公民开发者通过使用低代码平台搭建应用程序,能够减少对技术人员对依赖。...例如,如果您想搭建一个包含跟踪指标、添加图表等功能的数据看板时,您可以首先看看平台是否有类似的模板提供,如果有则直接使用,没有的话可以自己搭建一个,这样在后续的使用过程中若还需要在应用中使用类似的功能,
Supplementary View 用过 UITableView 控件的同学肯定都知道我们可以给它的每个 section 加上 headerView 和 footerView,那在 UICollectionView...中是否也能这样操作呢!...答案当然是肯定的,在 UICollectionView 控件中我们管这叫 Supplementary View, 翻译过来就是 "追加视图",那在 UICollectionView 中该怎么实现给每个...在接下来的内容中,你将会学到以下知识点: 1.如何在 UICollectionView 中创建 Decoration View2.自定义布局属性,计算 section 的背景图位置和大小3.实现 UICollectionView...UITableView 稍微复杂一些。
在 iOS 14 正式版发布之前我写了一篇博文《iOS开发之Lists in UICollectionView》,iOS 14 正式版发布以后,经测试,Apple 改变了测试版中的 API,所以本文进行一个补充说明...学习之前需要进行说明: 本文依然使用《iOS开发之DiffableDataSource》 一文中的数据。 需要熟悉 DiffableDataSource 的基本使用。...创建UICollectionView 为 UICollectionView 配置 List 式的布局,还可以配置滑动菜单。...firstCities.append(city) } else { secondCities.append(city) } } } 注册Cell 在这里可以像...UITableView 一样,填充 Cell 的内容。
在我们使用Pre-Fetching API的时候,我们一定要保证整个预加载的过程都放在后台线程中进行。合理使用GCD 和 NSOperationQueue处理好多线程。...性能的提升和UICollectionView一样的,对UITableView的性能提升很大! 四....Interactive Reordering 谈到重新排列,这是我们就需要类比一下UITableView了,UICollectionView的重新排列就如同UITableView 把cell上下移动,只不过...在iOS 9中,引入了UICollectionView的Interactive Reordering,在今年的iOS 10中,又加入了一些新的API。...开启分页之后就长这样子: 每次移动一次就会以页为单位的翻页。
领取专属 10元无门槛券
手把手带您无忧上云