xmind
总结
苹果不推荐自己成为自己的数据源,封装自己成为自己的数据源和代理时只能在代码里实现,不能在storyboard或者xib中实现(自定义UICollectionView类)
-
计算cell的高度:
方式一:将cell内的子控件一个一个设置好约束,将最底部控件底部距离cell约束设置好,然后系统自动修改内容label报错将251修改为250,最后在viewDidLoad方法中设置rowheight为自动计算高度和估算高度。(tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 200)方式二:将cell内的子控件一个一个设置好约束,将最底部控件底部距离cell约束去掉,然后实现heightforrow方法,最后在viewDidLoad方法中设置rowheight估算高度为XX值,然后在自定义cell的模型属性赋值方法中计算每一个控件高度进行累加(也可以强制cell布局后,获取最底部控件最大的y值),最后赋值给模型cellheight(自定义属性),最后在heightforrow方法返回cellheight。
设置了估算高度,tableView显示3个cell,就会调用3次cellforrow方法和调用3次heightforrow方法,会先调用一次cellforrow方法后调用一次heightforrow方法
tableViewController控制器下self.view和self.tableView都表示tableView
导航栏默认会有毛玻璃效果
如果一个自定义view是从xib中创建的,那么在自定义view类中实现initwithcoder和awakefromnib方法,在initwithcoder方法中添加子控件,在awakefromnib方法中初始化子控件(也可以添加子控件)
数组属性需要初始化