博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-c——UI基础开发第十二天(相册展示)
阅读量:6969 次
发布时间:2019-06-27

本文共 1474 字,大约阅读时间需要 4 分钟。

一、知识点

模仿新特性

UICollectionViewFlowLayout自定义布局

相册

瀑布流(淘宝购物之类的

二、复习

a、UICollectionView 和 tableview共享一套API 

不同:

1、实例化collectionView必须传入一个非空的layout布局对象 layout:主要针对 cell的各个属性操控(UICollectionViewLayout 啥都没有只是定义了必须实现的方法/UICollectionViewFlowLayout 是上面的子类)

2、必须要注册cell tableviewcell 可以在返回cell 的时候做为空判断,但是这个collectionviewcell必须注册

xib :必须设置重用标识符,且registerNib 如果regsterClass的话,里面的东西是看不见的

class :register

 storyboard:必须设置重用标识符

 

b、flow layout

itemSize

sectionInsets 设置组的内边距

scrollDirection 

minimumlineSpacing

minimumInteritemSpacing

 

c、组头和组尾

必须通过代理方法进行重用返回(kind属性分两种、如果通过storyboard 显示,必须要设置重用标识符,不然代理方法不会被调用

 

1、悬浮效果,sectionHeaderPinToVisibleBounds

sectionFooterPinToVisibleBounds

 

2、设置组头或组尾的size

headerReferencesSize

FooterReferencesSize

 

三、实现相册展示的放大放小

主要在layout中布局继承自 UICollectionViewFlowLayout

1、注意:为什么直接在layout的init方法中,初始化cell 的itemSize会不能实现

- (instancetype)init {

    if (self = [super init]) {   //在此创建cell的大小等属性设置 }    return self;}

 

原因:

在实例化layout的时候, collectionView还没有实例化, 所以在这个方法里,实例化的时候取不到collectionView的frame

解决方案:在prepareLayout [super prepareLayout]方法中实现并定义

 

2、重点:怎么设置Cell中滚动过来的图片大小(需要通过- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect  所有cell的属性设置

 // 1. 取出所有的item 的 UICollectionViewLayoutAttributes

    NSArray *superAttributes = [super layoutAttributesForElementsInRect:rect];

 

3、刷新布局

#pragma mark -  当屏幕的可见范围发生变化的时候, 要重新刷新布局

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

        return YES;

}

 

转载于:https://www.cnblogs.com/CityPe/p/5405901.html

你可能感兴趣的文章
NGUI裁剪模型和粒子
查看>>
hiho_1086_browser_caching
查看>>
绘制图表改变其大小
查看>>
观察者模式
查看>>
利用Nodejs快速构建应用原型
查看>>
【iOS】UITabView/UICollectionView 全选问题
查看>>
Xamarin Android提示内存溢出错误
查看>>
使用Objective-C的文档生成工具:appledoc
查看>>
制作 macOS Sierra 正式版U盘USB启动安装盘方法教程 (全新安装 Mac 系统)
查看>>
maven install 时提示“程序包 javax.crypto不存在”
查看>>
020医疗项目-模块二:药品目录的导入导出-介绍药品表
查看>>
支持向量机高斯核调参小结
查看>>
【中文分词】二阶隐马尔可夫模型2-HMM
查看>>
UIAlertView/UIAlertController封装使用
查看>>
控制CUP占用率曲线
查看>>
(原)torch中threads的addjob函数使用方法
查看>>
LAMP环境搭建实现网站动静分离[转]
查看>>
云之讯 录音下载
查看>>
pl/sql(2)
查看>>
js(jquery)绑定点击事件
查看>>