gpt4 book ai didi

ios - UITableViewCell 中的 UILabel 约束横向变化

转载 作者:行者123 更新时间:2023-12-01 20:20:50 24 4
gpt4 key购买 nike

我有一个静态 UITableView在我的 Storyboard中,它结合了系统单元和自定义单元。为了使自定义单元格看起来像系统单元格,我从 UILabel 的前面添加了一个 15 点约束。到单元格的 contentView (以匹配 15 点的默认分隔符插入)。

这种策略在 table view 是纵向时效果很好,但在横向时看起来约束会缩小,如下所示:

肖像:
System cell alongside custom cell in portrait

景观:
System cell alongside custom cell in landscape

你可以在上图中看到“BUG REPORTING”部分标题,“Report a Bug”标签(由系统单元格定位),两个单元格之间的线都距离contentView的左侧15个点,但是“记录”标签更接近。

我尝试将标签限制在 contentView 上,边距打开和关闭,结果是一样的。当自定义标签的约束与 contentView 左侧的距离明显相同时,它们甚至会报告不同的常量值。

Example of constraint information when constrained to margin

Example of constraint information when not constrained to margin

有谁知道发生了什么?

最佳答案

尝试创建 IBOutlet对于标签的前导约束,并在显示单元格之前对其进行修改:

func tableView(_ tableView: UITableView, willDisplayCell cell: UITableViewCell, 
forRowAtIndexPath indexPath: NSIndexPath) {
let leftInset = cell.separatorInset.left
cell.labelLeadingConstraint.constant = leftInset - 8
// - 8.0 accounts for constraint to margins in autolayout
}

或者,您可以使用尺寸类为 Compact Height 尺寸类设置不同的约束:

Compact height size class

然后,只需将约束的常量设置为 12 而不是 7(或 20 而不是 15,如果不使用边距)。

关于ios - UITableViewCell 中的 UILabel 约束横向变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com