聊天布局错题集
1.取出cellHeight时,计算TextButton和iconView 的MaxY,注意不要取button子控件TiltleLabel的MaxY,因为X,Y都是相对坐标,子控件的X,Y都是相对于父控件的,
2.经典错误重现:
objc: ld: 6 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)- 报错原因1:#import的头文件.h写成.m
- 报错原因2:在同一文件夹或不同一个文件夹内,有重名的.h文件
3.UILabel的的高度决定CellHeight时,进行强制布局后,因为仅仅是根据约束计算,会有一个空隙Bug,修改 preferredMaxLayoutWidth 属性为[UIScreen mainScreen].bounds.size.width - 20;或者其他的符合项目要求的值即可
4.UIButton 的自带子控件 titleLabel 的高度决定 cellHeight 时,进行强制布局后,取出MaxY时,注意不要取titleLabel这个子控件的MaxY,因为UIButton 与 其子控件 tltleLabel 的 两个 MaxY 的值和意义是不同的
(相对坐标系)
5.不等高cell的设计需要UIButton控件时,当需要Button的高度随时改变或其他的跟系统不同设定时,需要修改UIButton的Type为Custom
6.利用 storyboard 创建 UITabelView 时,注意控制 UITableView 的控制器需要跟 storyboard 的 viewController 的类型相符!不要用 UITableViewController 来控制类型是 UIViewController 的 storyboard