需要 AutoLayout UITableView 自定义单元格解决方案
Posted
技术标签:
【中文标题】需要 AutoLayout UITableView 自定义单元格解决方案【英文标题】:AutoLayout UITableView Custom Cell Solution Needed 【发布时间】:2016-01-12 07:51:45 【问题描述】:我对带有自定义单元格的 UITableView 使用 AutoLayout。该单元格包含两个 UIView。第一个视图比第二个更长,并且包含文本。第二个 UIView 持有一个图标。
第一个 UIView (A) 使用前导空间固定到内容视图的左侧到超级视图(内容视图),第二个 UIView (B) 使用尾随空间固定到右侧到超级视图。
在 iPhone 5 上,UIView (A) 占据了大部分的显示空间,并与 UIView (B) 之间的空间很小,如下图所示。
在 iPhone 6/6s 上,UIView (A) 和 UIView (B) 之间的空间很大,如下所示。
我希望 UIView (A) 增加宽度以填充空间,同时 UIView (B) 保持固定在右侧。有没有办法使用 AutoLayout 做到这一点?
【问题讨论】:
你用过multiplier
吗?
【参考方案1】:
将宽度约束添加到视图 B。将视图 A 的尾随空间约束添加到视图 B 所需的值(5?)
【讨论】:
【参考方案2】:这是你的观点A
这是你的观点 B
给视图 A 等宽,然后使用乘数
您的输出在 iphone 4 和 iphone 6 plus 中应该是这样的
【讨论】:
您需要在此处使用乘数而不是固定宽度,以确保视图在每个屏幕上都正确呈现。 71 像素在 iPhone 5S 上相当不错,而在 6S Plus 上则相当小。因此,我认为这不应该是答案。 感谢 Rahul,我被困在这个布局上,但找不到简单的解决方案。【参考方案3】:只需将视图 A 的尾随空格添加到视图 B 约束。如果视图 B 具有固有大小,则视图 B 不必具有宽度约束。否则需要添加 View B 的宽度约束。
【讨论】:
以上是关于需要 AutoLayout UITableView 自定义单元格解决方案的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 和 AutoLayout - 没有显示表格
使用 Autolayout 在 UITableView 中异步加载图像
如何使用 Autolayout 调整 UITableView 的大小?
使用 AutoLayout addSubview 到 UITableView 后崩溃