iOS中,UICollectionView和UITableView已经有系统默认选中颜色设置,但是只有无色,蓝色,灰色,三种颜色设置,如果想要其他的颜色效果,我们可以自由自定义设置。...前言 先观赏一下典型的UITableView控件案例 ? image.png 典型的UICollectionView控件案例 ?...image.png 1.单元格默认选中效果 系统默认单元格选中样式 //无色 cell.selectionStyle = UITableViewCellSelectionStyleNone ; //蓝色...(一) 通用方案: 假设你已经正确实现其他代理方法,需要在table或collection的返回cell的代理方法中作如下设置: cell.selectedBackgroundView = [[UIView...注意的是,方案一和方案二不要重复设置。另外,二者择一的话,推荐方案一。
场景需求 一个表格视图(或者宫格视图)中,当一个单元格被选中时设置彩色样式,选中其它单元格时设置灰色样式。 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
表相关与Tabbar SWTableViewCell - 国内开源作者,带很多手势的表单元格。 MCSwipeTableViewCell - 带很多手势的表单元格。...Eureka.swift - Eureka 是 XLForm 的 Swift 的移植版本, 一个可以帮助开发者们快速构建 iOS 各种复杂表单的库, 具有较高的可扩展性, 方便自定制样式。...HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。...QuickRearrangeTableView - 基于 UITableView 的快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。...LLNoDataView - 超简单的空数据提示通用View支持UIScrollView、UITableView、UICollectionView、UIWebView。
1 定义 1.1 什么是UICollectionView UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView...1.3 关于重用 为了得到高效的View,对于cell的重用是必须的,避免了不断生成和销毁对象的操作,这与在UITableView中的情况是一致的。...首先UICollectionViewCell不存在各式各样的默认的style,这主要是由于展示对象的性质决定的,因为UICollectionView所用来展示的对象相比UITableView来说要来得灵活...1.6 UICollectionViewLayout 这是UICollectionView和UITableView最大的不同。...需要注意根据滚动方向不同,header和footer的高和宽中只有一个会起作用。垂直滚动时section间宽度为该尺寸的高,而水平滚动时为宽度起作用,如图。
使用UITableView就不用考虑复用以及调整scrollView上子控件位置的问题了。...手动敲代码利用UITableView实现具有需求效果的控件,可当UITableView滑动到最后一个cell再滑动到第一个cell的时候出现问题(并不能很流畅地从最后一个cell滑动回第一个cell)。...网上再搜索相关demo,发现了利用UICollectionView实现该效果的一个demo。发现此demo的效果很好、代码易于理解、可扩展性高。 自己手动敲一个demo实现需求的效果。...手动敲demo: 先在当前控制器的view上添加一个UICollectionView,每个item的大小等于UICollectionView的大小。...再添加一个定时器,每隔一定的时间让UICollectionView进行滚动。
项目中想实现空态页风格统一控制的效果,就封装了一个默认空态页,使用的技术点有:1 方法替换 ,2 给分类(Category)添加属性。 ...但是分类(Category)不可以,但是我们又想在原生的UITableView和UICollectionView上添加空态页,所以使用了黑科技runtime中提供的对象关联。
引 开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。...如果熟悉UITableView的话,其实很多地方都是类似的,甚至可以说UITableView是一种特殊的UICollectionView,正如正方形是一种特殊的矩形一样,UITableView就是一种每行只放一个方块的...控制器 接着我们来创建UICollectionView,UICollectionView和UITableView的相同之处在于它们都是由DataSource填充内容并有Delegate来管理响应的,并且都实现了循环利用的优化...不同之处在于UICollectionView需要一个布局参数来决定cell是如何布局的,默认是流水布局,也就是我们最常见的形式,也就是上面图里的形式;此外,UICollectionView除了垂直滚动,...代码中注释了一行,就是用来设置滚动方向为水平的,效果如下: 同样的内容,滚动方式变化后,呈现的效果也会变化。
数据联动 在某一列滚动的时候,重新设置联动列的显示数据,然后进行刷新操作。...UIScrollView、UIPageControl UIScrollView 滚动控件 三个重要属性 contentSize:UIScrollView 滚动的范围。...contentOffset:UIScrollView 当前显示区域的顶点相对于内容左上角的偏移量(滚动到了什么位置)。...Model 必须具有唯一 Identifier,且遵循 Hashable 协议。...iOS 14 中 UICollectionView 的功能得以继续增强,可以在一定程度上替换 UITableView。
表相关与的TabBar SWTableViewCell - 国内开源作者,带很多手势的表单元格。 MCSwipeTableViewCell - 带很多手势的表单元格。...HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。...QuickRearrangeTableView - 基于UITableView的快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。...LLNoDataView - 超简单的空数据提示通用View支持UIScrollView,UITableView,UICollectionView,UIWebView。...YX_UITableView_IN_UITableView - UITableview嵌套UITableView案例实践(仿淘宝商品详情页实现),项目讲解。
今天有个需求需要实现Excel的效果:如图 ? image.png 提醒 这只是一个demo,没有考虑那么多需求,也只是提供一个学习的思路。有具体的需求可以修改代码,避免重复造轮子。...实现的思路 顶部的Header 最左侧[左上头]放的是一个UILabel,后面就放的是一个UICollectionView。...头部下面 头部下面整体是一个UITableView,然后每个Cell的Header部分也是UlLabel,后面也是一个UICollectionView 难的部分 左右滚动 左右滚动的时候左边Header...和顶部Header最左边固定,其他部分跟随滚动 上下滚动 顶部Header固定,其他部分跟随滚动 滚动部分核心代码 整个滚动Demo就这部分难一点,其他的都很简单,看看都懂的。...class]]) { UICollectionView *collectionView = (UICollectionView *)view;
UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。...比如具体 item 的尺寸大小, item 之间的间距,header 和 footer 的大小和间距,以及 UICollectionView 的滚动方向。...9.说说实现预加载的方法 关键词:#网络传输 #无限滚动 #Threshold 在实际开发中,列表经常需要随着滑动而不停的展示新的内容。在滑动到一定程度后,我们就需要发送网络请求,以获得新的数据。...网络请求是一种耗时且昂贵的操作,为了提高用户体验,开发者经常运用预加载的方式提前请求,这样可以在用户滑动到列表最底部之前提前获得最新数据,无需让用户等待。这就是无限滚动列表。...完成这些设定之后,我们发现 UICollectionView 里每个 item 里的高度需要从含有 UICollectionView 的 ViewController 里获得。
开始觉得很简单,毕竟我也是对于 UITableView和 UICollectionView 很溜的码农。 之前界面框架很简单 ?...整体是一个 UICollectionView 上面是一个 Header 我现在使用原来框架面临的问题是 我的 Header 那么多元素 都超出两屏幕了 自然要滚动了 之前是商品列表和 Header 可以显示在一个屏幕...1 上面Header为啥用 UITableView?...因为下面的频道是横向滚动的 设置方向之后 UICollectionView 的 Header 就是在最左边 不是我们要的结果 ?...发现 UICollectionView 重用机制 0和2位置公用同一个 导致0会记录2的位置 导致每次2到0频道0位置会变 最后用变量记录对应频道位置 判断如果当前频道刷新数据位置和之前记录不一样 则滚动到对应位置
CGRect(x:0, y:20, width: screenRect.size.width, height:screenRect.size.height - 20) 11 let tableView = UITableView...tableView.delegate = self 15 16 self.view.addSubview(tableView) 17 } 18 19 func tableView(_ tableView:UITableView...NSIndexPath).row % 2 == 0 21 { 22 return 104; 23 } 24 return 40; 25 } 26 27 func tableView(_ tableView:UITableView...numberOfRowsInSection section:Int) -> Int{ 28 return 20 29 } 30 31 func tableView(_ tableView:UITableView
{ return 10; } //定义展示的Section的个数 -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)...collectionView { return 2; } //每个UICollectionView展示的内容 -(UICollectionViewCell )collectionView:(UICollectionView...的 margin -(UIEdgeInsets)collectionView:(UICollectionView )collectionView layout:(UICollectionViewLayout...被选中时调用的方法 -(void)collectionView:(UICollectionView )collectionView didSelectItemAtIndexPath:(NSIndexPath...(和UITableView差不多吧!
• TKSmileSwitch:具有两个值的开关:悲伤和快乐。 • TKLiquidSwitch:具有液体样式动画的开关。...现在,您可以创建一个继承自 ExpandingViewController 的 UIViewController,注册在第一步中创建的单元格,并添加UICollectionViewDataSource。...AnimatedCollectionViewLayout 在项目之间滚动时,UICollectionView没有默认的过渡效果动画。...中显示倾斜的单元格。...该库可用于每个 UICollectionView,水平和垂直具有动态单元格高度。 在可配置的项目中,可以配置倾斜大小,倾斜方向,倾斜角度,滚动方向,行距,项目大小以及排除第一个或最后一个单元倾斜。
问题描述 我们首页有点复杂,因为结构是下面是一个横向滚动的 UIScrollView 上面是一个 UITableView 但是整体看起来是连贯的 所以上面的 UITableView 的高度就要算出来。...但是线上的包在iOS11上面显示十分的正常,并且团队其他的小伙伴运行没出现问题,就我的 Xcode9运行出现问题。 那就是 Xcode9打包出来的出现了问题。...设置这两个属性之后,首页上面 UITableView 的数据果然出现了。 虽然解决了,但是首页因为多个 UIScrollView 导致十分滚动会卡顿。...这个最好的解决办法是抛弃左右滚动切换功能 这样最下面的 UICollectionView 就可以不用 直接整体一个 UITableView 这样就可以实现滚动顺畅。...首页的设计思路可以参考我的一篇文章 关于首页设计框架和一些细节处理分析
#####集合视图的作用 集合视图是为了增强网格视图开发而在IOS6中开放的集合视图API。 #####集合视图的组成 集合视图有4个重要的组成部分,分别为: 单元格:即视图中的一个单元格。...节:即集合视图中的一个行数据,由多个单元格构成。 补充视图:即节的头和脚。 装饰视图:集合视图中的背景视图。...#####单元格 集合视图单元格是集合视图中最为重要的组成部分,没有样式和风格定义,单元格就是一个视图,可以在内部放置其他视图或控件。...:alwaysBounceVertical; 设置水平方向的反弹是否有效:alwaysBounceHorizontal; 是否允许滚动:scrollEnabled; 是否显示垂直方向的滚动条:showsVerticalScrollIndicator...为水平滚动。
正如大多数 iOS 开发人员所知,显示滚动数据是构建移动应用中常见的任务,Apple 的 SDK 提供了 UITableView 和 UICollectionVIew 这俩大组件来帮助执行这样的任务。...(Cache)和获取图像,来使你的 App 具有更高的响应速度 无限滚动,无缝加载 提到列表分页,相信大家第一个想到的就是 MJRefresh,用于上拉下拉来刷新数据,当滚动数据到达底部的时候向服务器发送请求...,然后在控件底部显示一个 Loading 动画,待请求数据返回后,Loading 动画消失,由 UITableView 或者 UICollectionView 控件继续加载这些数据并显示给用户,效果如下图所示...为了改善应用程序体验,在 iOS 10 上,Apple 对 UICollectionView 和 UITableView 引入了 Prefetching API,它提供了一种在需要显示数据之前预先准备数据的机制...UITableView 滚动起来肯定是如丝般顺滑,小伙伴们还等什么,还不赶紧试一试。
解决的办法是可以自己写个重用机制,不过这显然没必要,用自带重用机制的UICollectionView应该是个更好的选择。...然后要用 layout 控制布局,用最常用的 UICollectionViewFlowLayout 就行了,设置单元格的宽高,既然是翻页,宽肯定是跟屏幕等宽,高度就看你需求了,但是不要超过 collectionView...override init(frame: CGRect) { super.init(frame: frame) tableView = UITableView(frame...implementation, return the number of sections return 20 } func tableView(tableView: UITableView...tableViewDataList = ["first table", "second table", "third table"] override func collectionView(collectionView: UICollectionView
在 iOS 13 中 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource,让开发者可以更简单高效的实现 UITableView、UICollectionView...下面以 UITableView 为例进行讲解。 实现步骤 使用 DiffableDataSource 配置当前 UITableView 的数据源。...DiffableDataSource 通过调用自身 apply 方法将 DataSourceSnapshot 变更后的数据更新同步到 UITableView。...Model 必须具有唯一 Identifier,且遵循 Hashable 协议。...UITableView 的关键使用步骤,UIColletionView 使用类似,完整案例详见下面的链接: UITableView案例 UICollectionView案例
领取专属 10元无门槛券
手把手带您无忧上云