前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于AutoLayout原生Content Hugging和Content Resistance小研究

关于AutoLayout原生Content Hugging和Content Resistance小研究

作者头像
君赏
发布2018-08-31 16:14:19
6830
发布2018-08-31 16:14:19
举报
文章被收录于专栏:君赏技术博客君赏技术博客

之前就知道系统AutoLayout有拉伸和挤压的设置,平时用Masonry设置优先级也是可以解决这样的挤压和压缩的问题。但是设置Masonry的优先级自己一直设置不好。可能自己太菜了,或者自己对于Masonry研究的不是很精通。

今天用Reveal调试设置了一下竟然达到了自己预想的结果,所以今天就仔细的研究一下。

看来默认的Content Hugging的默认值是250,我只要轻轻的增加一个,就压缩了。

从上面的图中我们可以得到:

Content Hugging: 默认大小250

Content Resistance: 默认大小750

关于一些详细的介绍可以看我的小伙伴的文章 Masonry 笔记

- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);

- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);

UILayoutPriority

布局优先级用于向基于约束的布局系统指示哪些约束更重要,从而允许系统在满足系统整体的约束时进行适当的权衡

UILayoutPriorityRequired:1000 必需的约束。 不要指定超过此数字的布局约束。 UILayoutPriorityDefaultHigh:750 这是按钮抵抗其内容压缩的优先级。 UILayoutPriorityDefaultLow:250 这是按钮在水平方向上拥抱其内容的优先级。 UILayoutPriorityFittingSizeLevel:50 当向一个视图发送一个systemLayoutSizeFittingSize:消息时,计算最接近目标大小的大小。 这是视图希望在该计算中符合目标大小的优先级。 这是相当低。 通常不恰当地在这个优先级上进行约束。 你想要更高或更低。

UILayoutConstraintAxis

UILayoutConstraintAxisHorizontal : 水平约束 UILayoutConstraintAxisVertical: 竖直约束

我们根据上面说的根据我们刚才Reveal设置250以上就是UILayoutPriorityDefaultHigh,设置水平UILayoutConstraintAxisHorizontal

[_locationTitleLabel setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];

我们运行一下看一下。

设置成功。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.12.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UILayoutPriority
  • UILayoutConstraintAxis
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档