Auto Layout 实战
介绍下项目中运用到的用 Storyboard 中实现复杂的 UITableViewCell,原先的博客也实现了这么个功能,但是遇到的这个界面略显复杂。
效果如下图:
代码下载:
https://github.com/iYiming/YMGroupMsg
中间遇到的问题:
UILabel 如何多行
虽然 numberOfLines
已经设置为 0,但是由于分别在 iPhone,iPad 上测试都出现不能换行现象,问题是没有设置 preferredMaxLayoutWidth
属性,但是不能再 Xcode 属性面板里设置,而需要动态的在代码里实现。
在 YMGroupMsgTextCell 中设置,如下代码:
kScreenWidth 为当前设备屏幕的宽度。
约束冲突
中间出现了好多错误冲突,红色的那种,出于不了解情况,出现这种错误就不知道怎么解决。但是 Xcode 提供了很好的解决冲突的方式,通过改变约束的优先级来解决,根据 Xcode 提示的解决的办法一步步弄好就 OK 了。
Xcode 出现了项目警告(不是约束警告)
在 Xcode 6 下开发时,使用 autolayout的Storyboard
出现警告:Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0
原因:Xcode 6 下默认开启自动设置 UILabel 的 preferredMaxLayoutWidth
的属性,而自动的特性只支持 iOS 8,故导致这个警告,如果想兼容 iOS 7 则需要消除。
解决方法:设置固定的 preferredMaxLayoutWidth
(勾选 Explicit)。