iOS 自动布局 关于 '控件拉伸' 或者 '内容压缩'的控制
来源:互联网 发布:php 使用openoffice 编辑:程序博客网 时间:2024/06/05 00:30
在开发过程中,经常碰到如图所示的需求:
并排着三个label_0, label_1, label_2..(从左至右),三个label的内容长度都是未知,三个label的之间的距离都是固定值。
正常操作:我们从左至右依次添加label。设定距离左端的距离,居中,最后一个label_2的时候,再多设置一个距离父视图右边的距离。。
这样,约束会飘红,有冲突。而且我们不希望最右边的label_2拉伸,而不是中间的label_1.
所以合理的操作应该是改变控件拉伸难易度的属性。。也就是改变 Hugging priority(hugging:"拥抱",priotity: "优先级")-------->可以按照中文直译的理解方式来理解。。拥抱的优先级越高也就越难分开,即越不容易被拉伸。
关于Hugging priority 系统有三个枚举值250(Low) , 750(High), 1000(Require)..也可以通过手动设置具体的值。
还有一个问题,当文字的长度过长时,我们需要指定某个label的内容优先显示,也就是需要压缩其它label的内容。。假设我们需要压缩中间label_1的内容。
这时候我们只需要像设置 Hugging priority一样设置 Compression Resistance Priority.(Compression: "压缩",Resistance: "阻力"),中文直译也就是"压缩阻力的优先级",系统对应的枚举值同样有三个250(Low) , 750(High), 1000(Require)..
我的理解是这个值越高压缩难度越大,label的内容越难被压缩,也就是文字过长的情况下如果我们指定中间的label_1文字的内容优先被压缩,那么我们只需要设置label_1的compression Resistance Priority的值为Low即可。
如图所示,即可满足需求
这是Xib上的操作,对应代码的API为:
[testLabel setContentCompressionResistancePriority: UILayoutPriorityRequired forAxis: UILayoutConstraintAxisHorizontal];
[testLabel setContentHuggingPriority: UILayoutPriorityRequired forAxis: UILayoutConstraintAxisHorizontal];
第一个参数为 优先级的值
第二个参数 为水平 或者 竖直方向。。
- iOS 自动布局 关于 '控件拉伸' 或者 '内容压缩'的控制
- iOS 自动布局 同一行的几个控件 需要其中某几个不被压缩,其中某几个不被拉伸
- iOS 关于scrollView内部子控件的自动布局
- storyboard中关于拉伸压缩的优先级priority的设置(自适应布局很有用)
- 关于iOS自动布局
- 关于iOS自动布局
- 关于iOS自动布局
- 关于ios自动布局
- 关于获取button控制或者编辑框控件或者静态文本框控件字符的操作
- 关于iOS自动布局学习心得
- iOS图片边框不拉伸,内容拉伸
- iOS图片边框不拉伸,内容拉伸
- drawable 按照分辨率压缩或者拉伸
- JS_布局_的左右两列自动拉伸对齐
- iOS label 根据内容自动布局
- ios 的自动布局
- IOS开发关于自动布局Autolayout产生的bug
- 关于iOS 11 tableView自动布局懵逼的事
- C++运算符重载讲解与经典实例
- 据说一个成功的研发团队应具备这9大属性
- python中json模块的用法
- 错误ORA-28040:没有匹配的验证协议&&错误ORA-12541:无监听程序
- Android 如何通过java反射得到build.prop的键值对
- iOS 自动布局 关于 '控件拉伸' 或者 '内容压缩'的控制
- 64K异常,method ID not in [0,0xffff]:65536
- winform 闪烁
- linux下的一个简单线程安全内存池实现
- Echarts 折柱混合图
- Huffman编码树
- Spark性能优化指南——基础篇
- 阿牛的EOF牛肉串
- 两个栈实现一个队列和两个队列实现一个栈