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

2017-01-16 21:38:11 +08:00
 lisonfan

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

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

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

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

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

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

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

Xcode 控制台狂飙 log

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

2913 次点击
所在节点    iOS
24 条回复
Sunnyyoung
2017-01-16 23:37:24 +08:00
分割线跟其他 View 没有任何约束的关联,直接固定 left right bottom 和其 height 的约束就好了阿
Sunnyyoung
2017-01-16 23:37:56 +08:00
分割线用 Layer 画一个多好🙄
lisonfan
2017-01-17 00:10:36 +08:00
@Sunnyyoung



这样写 Xcode 还是滚一堆的 log



ps: label 加上去了。
Dashit
2017-01-17 08:49:05 +08:00
make.size.height.equalTo(0.5) 应该是这样吧.
lisonfan
2017-01-17 09:00:27 +08:00
@Dashit 还是狂飙 log
Dashit
2017-01-17 09:03:34 +08:00
@lisonfan 看你贴的 log 应该不止 line 一个地方写的有问题.
lisonfan
2017-01-17 09:07:04 +08:00
@Dashit line 不用 mas 加的话约束就没问题
lisonfan
2017-01-17 09:08:22 +08:00
@Dashit



其他三个控件是这样写的
Dashit
2017-01-17 09:21:18 +08:00
newsPhoto make.size 这句去掉改成 make.width.equalTo(100).
titleLabel height 的约束没有设置.
classCnLabel 少了个 top.
sjjvenu
2017-01-17 09:21:23 +08:00
图片控件的 top 和 bottom 都加了限制,然后又设置了 size ,应该是高度和 top,bottom 冲突了吧
lisonfan
2017-01-17 09:48:54 +08:00
@Dashit

make.width.equalTo(100) 和 make.size.width.equalTo(100) 都报错报警告

Implicit conversion of 'int' to 'id' is disallowed with ARC

Incompatible integer to pointer conversion passing 'int' to parameter of type '__strong id'
lisonfan
2017-01-17 09:58:54 +08:00
@Dashit
@sjjvenu
@Sunnyyoung

谢谢三位的回答,我再研究研究
Dashit
2017-01-17 10:08:15 +08:00
@lisonfan make.width.mas_equalTo(100)
感觉你对约束理解有点问题.
laoyur
2017-01-17 10:09:31 +08:00
@lisonfan 回 3#,为何最后一行是 make.size.height.offset(0.5)?我对 Masonry 用得不多,都忘记了
但直觉上不应该是 make.size.height.equalTo(@1)吗?
我现在用 Cartography ,感觉用得也不是很爽,其实我更喜欢直接 storyboard ,直接拖来拖去,啪啪啪很爽快的感觉

顺便搭车问个问题, storyboard 跟 Cartography 混用约束时(比如 storyboard 排好版后,需要运行时动态加点控件之类),总是报一大堆 log ,请问有没有什么最佳实践可以遵循?
hhg200454
2017-01-17 10:31:54 +08:00
line 的约束最后一行改下:
make.height.mas_equalTo(0.5);
lisonfan
2017-01-17 10:33:33 +08:00
@laoyur
@Dashit

再次感谢两位,问题解决,对 Masonry 和约束还是不太熟,还要多练练
lisonfan
2017-01-17 10:35:01 +08:00
@hhg200454

是的,最开始我以为 make.size.height.offset(0.5) 仅仅设置了高度,没想到还顺带设置了宽度

现在改成 make.height.mas_offset(0.5) 就好了。

谢谢
DingSoung
2017-01-17 10:50:11 +08:00
每次看到这样一大堆布局代码 真心觉得很傻
lisonfan
2017-01-17 10:52:31 +08:00
@dingsoung

![]( )

laoyur
2017-01-17 11:43:12 +08:00
@lisonfan 你这个屌,能做成这样也是神人了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335011

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX