objective-c - [iOS 问题求助]关于 Masonry 布局的问题

浏览:55日期:2023-12-29

问题描述

我一个自定义的 Cell ,布局如下:

objective-c - [iOS 问题求助]关于 Masonry 布局的问题

图片设置大小、距离顶部、距离左边、距离底部

标题的左边距离图片的右边、距离顶部、距离右边

来源的左边距离图片的右边、顶部距离标题的底部、距离底部、距离右边

这样设置是没问题,正常的。

但是现在我想自定义一条分隔线,草图如下:

objective-c - [iOS 问题求助]关于 Masonry 布局的问题

我该如何修改?我尝试了很多次都失败了。。

Xcode 控制台狂飙 log

PS: 用了 UITableView-FDTemplateLayoutCell 来动态计算高度

问题解答

回答1:

来源的底部约束改为与分割线top的垂直距离,分割线添加左、右、高与底部约束。

回答2:

问题已解决,本人对约束和 Masonry 还是不熟,还得多练练

回答3:

试试这样看看:

[imgv mas_makeConstraints:^(MASConstraintMaker *make) { make.width.equalTo(@40); make.height.equalTo(@40); make.top.equalTo(@20); make.left.equalTo(@20);}]; [lbTitle mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(imgv.mas_right).offset(10.0f); make.top.equalTo(imgv.mas_top); make.right.equalTo(@-20); make.height.equalTo(@20);}];[lbSource mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(lbTitle.mas_left); make.top.equalTo(lbTitle.mas_bottom).offset(10.0f); // 或 make.bottom.equalTo(imgv.mas_bottom); make.height.equalTo(@20);}];[vLine mas_makeConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(vLine.superview.mas_bottom); make.height.equalTo(@1); make.left.right.equalTo(@20);}];

里面的数值自己估摸一下,应该没什么大问题。

补充一下: imgv:图片 lbTitle:标题 lbSource:标题下方的label vLine:下划线

相关文章: