9.UICollectionView增强
来源:互联网 发布:淘宝店铺装修基础版 编辑:程序博客网 时间:2024/06/07 06:41
1.用UICollectionView仿UITableView
UITableView简单来说,就是一个可以滚动表格界面
这个表格界面中有什么特点?
UITableView在初始化的时候,需要设置两种样式?
1. 普通样式
2. 分组样式
两种样式的区别?
1. 有头标签
普通样式- >头标签始终处于屏幕上方,至到被下一个替代
组样式—>头标签随着屏幕移动而移动
2. 没有头标签
普通样式 —>没有区别
组样式—>组和组之间有间隔
无非就是展现一行行的数据
1.1注意点:
1. cell下方的线条,在UITableView是默认就有的
想再UICollectionView中也有,需要自己添加,在item定义一个背景颜色为黑色的view长为item的长高为1就可以
2.如何让item的宽跟屏幕同宽?
代码设置
3.既然要仿UITableView,那UITableView中有的特点就都要有
分组样式已经实现,只需要设置头尾就可以
带头标签的普通样式该如何去做—>
self.flowLayout.sectionHeadersPinToVisibleBounds = YES;
self.flowLayout.sectionFootersPinToVisibleBounds = YES;
如果以后一个控件,要求尾部也固定显示在界面上,用UICollectionView
4. 修改头尾的大小
self.flowLayout.headerReferenceSize =CGSizeMake(0, 200);
// self.flowLayout.footerReferenceSize =CGSizeMake(0, 300);
2. UICollectionView仿UIScrollView实现无限轮播器
2.1用UICollectionView进行制作:
1. UICollectionView大小设定为多大?屏幕一样大
UICollectionViewController
2.2当item中控件数量比较少,还自定义一个UIView显得太过麻烦
所以通常,给控件设置一个tag ,然后通过viewWithTag方法获取控件
2.3分页功能 UIScrollView中学的
这个属性归UIScrollView拥有
想让其他的类,也拥有分页效果需要怎么做?继承
2.4 无限滚动
滚动的次数由谁决定?
有返回的item的数量进行决定 ,所以可以通过改itme进行滚动
2.5由于是第一个数据,所以不能往左滚
让它不是第一个数据
scrollTo方法—>滚动到某一个位置
3. 相册效果
1.让item的Size变大就可以
2.控件最终运行在界面上,需要获取到具体的某一个item然后才能让它变大
3.并且,这个item还必须是刚好展现在界面上的
3.1自定义layout
通常在UICollectionView中自定义layout的时候,不会去继承UICollectionViewLayout,因为在这里面没有itemSize属性,也没有最小边距等属性
所以通常会继承UIColllectionViewFlowLayout
3.2初始化的方法,在init中写是否可以,可以!但是如果写在Init方法中
那么layout的初始化就必须使用代码实现,对应的UICollecionView也必须使用代码
将会变得非常非常麻烦
学习系统layout自带的一些方法
1.如何获取到当前界面中看到的Item
2.得到看到的item怎么改变
3.控件改变了,但是在滚动的时候,需要界面刷新,让should方法等于YES
4.滚动停止的时候,让距离中间最近的控件显示在中间
4. 瀑布流
1.知道了如何计算单独item的frame就可以了
1.知道界面中的item都需要变化,所以使用layoutAttributesForElementsInRect
返回的是改变后的item
2.获取上方控件的最大的Y
使用一个数组,用来保存上方控件的最大的Y
数组的长度应该是多少?
需求驱动开发,需要什么再去做什么
5.添加下方标题的时候,layout的布局,如果加了尾部,需要在自定义布局中进行添加
// 1.获取footerView不能使用 self或者super调用方法
// 必须使用UICollectionViewLayoutAttributes
// 2.创建indexPathForRow对头尾来说需要使用 forRow
//3. Y值一定要在item的最下吗
6.界面滚动在最下方,加载数据
需要知道界面滚动的状态
1.在UIScrollView中如何知道界面在滚动?如果在界面滚动的时候,我们做事情?
2. UICollectionView它的父类就是UIScrollView
3.调用父类中的代理方法 delegate属性
重点:加载数据刷新后,明明footerView只有一个,为什么会报两个的错误
- 9.UICollectionView增强
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- java面试内容
- Linux中关于JAVA调用C生成的.so动态链接库
- Bash脚本学习(1)
- EF LinQ增删改查表达式
- nfs mount
- 9.UICollectionView增强
- IOS中如何在多层界面之间显示与隐藏标签栏(UITabBar)
- org.hibernate.HibernateException: createSQLQuery is not valid without active transaction
- AndroidStudio .gitignore忽略文件
- Appium对于xpath 查找元素慢的原因
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
- RandomAccessFile的使用方法和案例分析
- 反编译的常用工具与使用方法
- hive简介