使用了Autolayout的UITableViewCell动态布局和高度动态改变自适应
2015-08-28 16:37
555 查看
学习的原文:http://blog.163.com/china_uv/blog/static/1171372672014111681232340/
首先我使用了xib来自定义cell,并且给cell添加好了约束
此处要注意,所有控件必须添加到ContentView上
一定要使cell上的子视图的边缘固定到ContentView上面,特别是顶部和底部的边距约束,参考下图
如果是用代码设置的约束,那要到cell的
下面是iOS8以上的自适应方法:
一般来说,行高估算值不需要太精确——它只是被用来修正tableView中滚动条的大小的,当你在屏幕上滑动cell的时候,即便估算值不准确,tableView还是能很好地调节滚动条。
完成以上步骤即可实现cell的高度自适应。
如果没有写
注意不是这个方法
下面是iOS8之前也能用的自适应方法:
首先这个label我没有设置高度的约束
然后把label上的文字传入此方法,获得label的高度
有图片的话在返回的高度处加上图片的高度即可。
imageView也可以用 sizeToFit 方法来自适应图片的大小
首先我使用了xib来自定义cell,并且给cell添加好了约束
此处要注意,所有控件必须添加到ContentView上
一定要使cell上的子视图的边缘固定到ContentView上面,特别是顶部和底部的边距约束,参考下图
如果是用代码设置的约束,那要到cell的
updateConstraints方法里面来设置,如果有多个cell的样式不一样,还需要单独设置其不同的标识符,详情参考原文,此处不多说
下面是iOS8以上的自适应方法:
iOS8 - Self-Sizing Cells
rowHeight这个属性需设置为
UITableViewAutomaticDimension
estimatedRowHeight只要设置为非0值即可开启行高估算,一般设置为接近平均行高的值。这样做是为tableView上还没有显示在屏幕上的cell提供了一个临时的估算的行高。然后,当cell即将滚入屏幕范围内的时候,会计算出实际的高度。
一般来说,行高估算值不需要太精确——它只是被用来修正tableView中滚动条的大小的,当你在屏幕上滑动cell的时候,即便估算值不准确,tableView还是能很好地调节滚动条。
完成以上步骤即可实现cell的高度自适应。
如果没有写
estimatedRowHeight属性,或者行高比较极端,滚动条出现明显的跳跃时,也可使用这个方法即来设置cell高度的估算(return处随意写个数字即可,跟它的属性用法一样)
注意不是这个方法
下面是iOS8之前也能用的自适应方法:
首先这个label我没有设置高度的约束
然后把label上的文字传入此方法,获得label的高度
有图片的话在返回的高度处加上图片的高度即可。
imageView也可以用 sizeToFit 方法来自适应图片的大小
相关文章推荐
- win8.1/win10 UEFI + GPT 安装(测试机型:华硕S56CM)
- 【Material Design视觉设计语言】UI组件设计(十四):Tabs
- iOS开发之View属性hidden, opaque, alpha的区别
- 【Material Design视觉设计语言】UI组件设计(十三):Toast
- windowsAPI之OpenProcessToken,AdjustTokenPrivileges 和LookupPrivilegeValue
- Android TouchEvent之requestDisallowInterceptTouchEvent
- SeaJS与RequireJS最大的区别
- iOS8里设置tableview的setSeparatorInset:UIEdgeInsetsZero不起作用
- [Bluetooth Core V4.2 ] VOL2, PartB, 3 Physical Links
- leetcode Repeated DNA Sequences
- 8.9 Controlling the Query Optimizer
- 【Material Design视觉设计语言】UI组件设计(十二):滑块
- [UI]抽屉菜单DrawerLayout分析(三)
- [UI]抽屉菜单DrawerLayout分析(二)
- [UI]抽屉菜单DrawerLayout分析(一)
- 【Material Design视觉设计语言】UI组件设计(十一):选择器
- li value 为负值时,IE 的兼容性问题
- iOS更改UISearchBar里面的UITextField的frame以及去除UISearchBar的背景
- UE4 Metal Rendering API
- UE4 Setting Device Profiles