首页
学习
活动
专区
圈层
工具
发布

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

中,而是直接在UICollectionViewLayout类中的(因为它仅仅是视图相关,而与数据无关),放到稍后再说。...1.3 关于重用         为了得到高效的View,对于cell的重用是必须的,避免了不断生成和销毁对象的操作,这与在UITableView中的情况是一致的。...在iOS5中,Apple对UITableView的重用做了简化,以往要写类似这样的代码: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier...这次Apple给我们带来的好康是被选中cell的自动变化,所有的cell中的子view,也包括contentView中的子view,在当cell被选中时,会自动去查找view是否有被选中状态下的改变。...需要注意根据滚动方向不同,header和footer的高和宽中只有一个会起作用。垂直滚动时section间宽度为该尺寸的高,而水平滚动时为宽度起作用,如图。

1.9K30

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

引 开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。...如果熟悉UITableView的话,其实很多地方都是类似的,甚至可以说UITableView是一种特殊的UICollectionView,正如正方形是一种特殊的矩形一样,UITableView就是一种每行只放一个方块的...和DataSource方法中的Identifier保持一致,cell只能通过注册来确定重用标识符 [collectionView registerClass:[CollectionViewCell...代码中注释了一行,就是用来设置滚动方向为水平的,效果如下: 同样的内容,滚动方式变化后,呈现的效果也会变化。...:(NSInteger)section { return 4; } // 水平间距 - (CGFloat)collectionView:(UICollectionView *)collectionView

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

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

    UITableView有着诸多的相似之处,其中许多代理方法都十分类似。...中的cell特性外,CollectionView中的Item大小和位置可以自由定义 4、通过layout布局回调的代理方法,可以动态的定制每个item的大小和collection的大体布局属性 5、更加强大一点...的回调代理中,只能使用从复用池中获取cell的方式进行cell的返回,其他方式会崩溃,例如: //这是正确的方法 -(UICollectionViewCell *)collectionView:(UICollectionView...则会在一列充满后,进行第二列的布局,这种方式也被称为流式布局 三、UICollectionView中的常用方法和属性 //通过一个布局策略初识化CollectionView - (instancetype... *> *)indexPathsForVisibleItems; //下面三个方法是iOS9中新添加的方法,用于获取头尾视图 - (UICollectionReusableView *)supplementaryViewForElementKind

    3.9K20

    iOS14开发-UIView

    子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...直接在 storyboard 中布局,不需要使用数据源方法,但如果需要使用到代理方法,仍然需要在控制器中实现相应的方法。 适用于基本不需要动态修改、布局固定的页面,如个人中心、设置等。...UITableViewDiffableDataSource 在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView...,它有三种形式: 水平(horizontal) 垂直(vertical) 自定义(custom) Group 的大小页需要通过 NSCollectionLayoutSize 决定。...14 中 UICollectionView 的功能得以继续增强,可以在一定程度上替换 UITableView。

    13.5K10

    UI篇-UICollectionView 补充

    可以在VC中具体实现对应的方法: 定义每个Section的约束,具体作用是靠近左右边缘的距离,这里定义的上下距离约束会被其他协议覆盖掉 -(UIEdgeInsets)collectionView:(...---- 也可以自定义一个 继承于 UICollectionViewFlowLayout 的约束,在自定义的约束中实现更强大的功能。比如这样的: ?...item 的具体Frame attri.frame = CGRectMake(cellX, cellY, cellWidth, cellHeight); 实例中在自定义的方法中高度返回的是随机值:...使用UITableView,这种方式应该是最易想到的,因为需要展现几列就用几个tabelview就ok了,而且不需要考虑重用,因为苹果已经做好了,只需要考虑如何在几列tabelView滑动的时候,保持同步不出现...使用UICollectionView,UICollectionView在iOS6中第一次被介绍,它与UITableView有许多相似点,但它多了一个布局类,而实现瀑布流,就与这个布局类有关。

    1.8K20

    WWDC20中iOS的改变

    WWDC20中,绝大部份同学都会把注意力放在了iOS的布局改变和自研芯片上,这方面的文章也比较多,但作为一名开发者,更多的聚焦在iOS官方语言和官方库上来,这里仅找出几个更新比较大的点给大家分享。...Group 有三种形式水平(horizontal)、垂直(vertical)、自定义(custom)从这里可以看出,collectionView的布局越来越多样,越来越多样,多性能监控和用户行为监控提了更高的要求...也就意味着collectionView可以做UItableView的事情了(不再需要UItableView),同样,该样式还支持左滑删除等tableview的特色属性。...PencilKit为iOS应用程序提供了一个绘图环境,该环境可以从Apple Pencil或用户的手指中获取输入,并将其转换为您在iOS或macOS中显示的高质量图像。...今年的API增加了Catalyst对在iOS中处理物理键盘事件的支持,这对设备的用户行为上报是个利好消息,此外,tvOS的焦点引擎API现在可用于Mac Catalyst中的应用程序,UICollectionView

    2.2K10

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

    本文属 iOS小经验系列:累积平时看起来简单,容易忽视的边边角角,各路大佬敬请回避。 1....场景需求 一个表格视图(或者宫格视图)中,当一个单元格被选中时设置彩色样式,选中其它单元格时设置灰色样式。 2. 一个思路 通过实现选中和非选择的代理,以在适当的时机进行UI更新操作。 3....UITableView 3.1 通过屏幕点击改变的选中状态回调给代理 //选中 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath...// animate between regular and selected state 注意的是: 这种方法改变cell的选中状态时,当通过屏幕点击选中其它cell的时候,UITableView并不会执行...cell的时候,UITableView并不会执行- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath

    4.1K50

    WWDC2016 Session笔记 - iOS 10 UICollectionView新特性

    针对self-sizing的改进 self-sizing的API在iOS8的时候被引进,iOS10中加入更多特性使cell更加容易去适配。...所以滑动的顺滑是使用户沉浸在app中享受的必要条件。接下来我们就谈谈iOS 10 中增加了那些新特性。...但是依旧存在少量的波峰快到16ms分界线了。 上图是iOS 10 + Pre-Fetching API 之后的性能,已经优化的效果很明显了!整条曲线基本都水平了。近乎完美。...在iOS 9中,引入了UICollectionView的Interactive Reordering,在今年的iOS 10中,又加入了一些新的API。...六.UIRefreshControl UIRefreshControl现在可以直接在CollectionView里面使用,同样的,也可以直接在UITableView里面使用,并且可以脱离UITableViewController

    2.2K30

    使用 UICollectionView 实现首页卡片轮播效果

    UICollectionView 是 iOS6 之后引入的一个新的 UI 控件,与 UITableView 有着很多相似的地方,在开发过程中我们都会选择使用它们俩来为 App 的整个页面进行布局,比如说淘宝的首页...;相比 UITbleView,UICollectionView 的功能比它要强大的多,它支持水平与垂直俩种方向的布局,开发者可以完全自定义一套 layout 布局方案,实现出意想不到的效果。...= false collectionView.delegate = self collectionView.dataSource = self collectionView.backgroundColor...frame = pageControlFrame if #available(iOS 14.0, *) { self.pageControl?....,代码比较多(比较乱),有的同学可能看的不是很明白,那是因为我展示的代码只是局部的代码片段,主要是想给大家简单的讲述一下我的实现思路,因为用手机看公众号文章如果贴上所有的代码,对于大家的阅读体验是非常不好的

    2.6K20

    iOS---UICollectionView详解和常用API翻译

    UICollectionView 1.必须要设置布局参数 2.注册cell 用法类似于UITableView 类。自动实现重用,必须注册初始化。...@property (nonatomic) CGSize itemSize; @property (nonatomic) CGSize estimatedItemSize // 滚动方向,默认是水平...// 垂直滚动时section间宽度为该尺寸的高,而水平滚动时为宽度起作用, @property (nonatomic) CGSize headerReferenceSize; @property (nonatomic...重写方法 // 返回collectionView的内容的尺寸 -(CGSize)collectionViewContentSize // 返回rect中的所有的元素的布局属性 /* 返回的是包含UICollectionViewLayoutAttributes...首先,-(void)prepareLayout将被调用, 默认下该方法什么没做,但是在自己的子类实现中 ,一般在该方法中设定一些必要的layout的结构和初始需要的参数等。

    2.5K110

    SwiftUI中的水平条形图

    SwiftUI中的水平条形图 水平条形图以矩形条的形式呈现数据类别,其宽度与它们所代表的数值成正比。本文展示了如何在垂直条形图的基础上创建一个水平柱状图。 水平条形图不是简单的垂直条形图的旋转。...在Numbers 等应用程序中,水平条形图被定义为独立的图表类型,而不是垂直条形图。除了条形差异外,x轴和y轴的格式也需要不同。...Chart in SwiftUI Hide Bar Chart Axes in SwiftUI Bar Chart with multiple data sets in SwiftUI SwiftUI 中的水平条形图...将条形图转换为水平 水平条形图不仅仅是在垂直条形图上的配置,有一些元素是可以重复使用的。...在创建垂直条形图时学到的技术可以重复使用,但最好将水平条形图视为与垂直条形图不同的图表。当我们深入到轴等组件时,可以看到两个图表中的轴线都是一样的,但是它们的标签和定位在x和y之间是换位的。

    5.8K20

    直播卖货小程序源码中,商品分类页面是如何实现的

    在直播卖货小程序源码中,一般都包含商品分类页面,如下图,那么这个页面是如何通过代码实现的呢?下面,小编以iOS版本的开发过程为例,来讲述下实现过程。...图片1.png 左边一级分类使用tableview来展示,右边的耳机分类使用collectionview来展示,主要就是实现一二级分类的联动。下面主要讲下点击和滑动。...1、左侧一级分类的点击实现 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath...的代理方法中更改一级分类的选中 ///collectionview将要加载头尾视图调用的方法 - (void)collectionView:(UICollectionView *)collectionView...已经加载完头尾视图调用的方法 - (void)collectionView:(UICollectionView *)collectionView didEndDisplayingSupplementaryView

    1.4K20
    领券