2019-02-12

文章原网址:https://blog.csdn.net/hherima/article/details/53318306

    常见的masonry的使用是比较简单,可应付一些常见的布局。但有些布局是动态的,则需要一些masonry和自动布局的技巧,直接上图,如何实现图片中cell的布局。

下图中,播放量可变长(必须显示完整);绿底的是“出品人名称”超长显示...;置顶icon必须跟在出品人后面,但不能超过右侧海报图的left。如果写死lable的宽度是很low的代码,本文介绍一种优雅的API

    为了说明问题,这里用:以下几个字段说明:playIcon(播放icon),playCount(播放量),account(出品人名称),topIcon(置顶),如果仅仅是下面的代码,

playIcon.right = playCount.left;
playCount.right = account.left;
account.right = topIcon.left;

实现不了图中的效果。
解决办法就是:在设置好right和left的基础上,使用masonry的优先级和uiview的布局优先级,主要涉及两个API,如下:

- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis//别挤我,
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis//抱紧,类似于sizefit,不会根据父view长度变化

那么,我们队account和playcount进行设置:

[_account setContentCompressionResistancePriority:UILayoutPriorityFittingSizeLevel forAxis:UILayoutConstraintAxisHorizontal];//宽度不够时,可以被压缩
[_account setContentHuggingPriority:UILayoutPriorityRequired/*抱紧*/
                                     forAxis:UILayoutConstraintAxisHorizontal];
[_playCount setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];//不可以被压缩,尽量显示完整

另外,topIcon在设置left和right的时候,需要对right使用低优先级。

make.left.equalTo(self.playCount.mas_right).offset(gapMargin).priorityHigh();
make.right.equalTo(self.moreBtn.mas_left).priorityLow();//must be low priority

作者:hherima
来源:CSDN
原文:https://blog.csdn.net/hherima/article/details/53318306
版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1说说JVM垃圾回收机制。 http://blog.csdn.net/xiajian2010/article/de...
    Alfred泉阅读 779评论 0 2
  • 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。 同步调用:即单向调...
    烟雨乱平生阅读 153评论 0 0
  • 本系列出于AWeiLoveAndroid的分享,在此感谢,再结合自身经验查漏补缺,完善答案。以成系统。 Andro...
    济公大将阅读 1,844评论 2 10
  • 十一小长假已经过去好久,都已经到了十一月了,中间一直忙着这事、那事,也总是找借口不来记录。今天总算空闲了一...
    Daisy_uu阅读 266评论 0 0
  • 《我是怎样的一个人》 ——年初一献给小西瓜 文/五音麦笛 我是一个不爱回忆的人 ...
    五音麦笛阅读 395评论 0 4