gpt4 book ai didi

ios - 在单元格中,如何定位和调整从带有自动布局的 Nib 创建的 View 的大小?

转载 作者:行者123 更新时间:2023-11-29 12:13:05 27 4
gpt4 key购买 nike

我有一个 UITableViewCell 子类,我选择在其 layoutSubviews 方法中设置所有定位。我有一个我创建的特殊 View (本质上是一个带有 UILabel 的 View )作为此单元格的 subview ,我想将它正确定位在 layoutSubviews 中,但我不知道怎么做。

我手动计算每个其他 View 的位置,然后调用 setFrame。这对于我创建的这个特殊 View 来说似乎很奇怪,因为它是从 Nib 创建并使用自动布局进行布局的。但是单元格本身不使用自动布局,所以我不确定该怎么做。

在约束方面,带有标签的特殊 View 仅将标签定位在距离它所包含的每个 View 尺寸 15pt 的位置。

layoutSubviews 中,我想基本上保持插入它的逻辑完好无损,但要确保它在单元格中的位置和大小正确。所以基本上我想保持自动布局逻辑,使标签在特殊 View 中保持原样定位,但允许我使用 setFrame 在单元格中定位和调整整个 View 本身>。基本上是从一个带有自动布局的 Nib 创建的 View ,在一个选择不使用自动布局的单元格内使用。

我尝试基本上调用 sizeThatFits:CGSizeZero 来推断自动布局的尺寸,然后定位它,但它返回一个荒谬的大尺寸,没有意义。即使我返回手动大小,我也会在控制台中收到“约束冲突”警告,即我用于在单元格内设置标签的一个或多个自动布局约束将被忽略。

我应该怎么做?我应该如何使 View 的 subview 尊重其自动布局系统,但允许我随心所欲地定位内聚 View 本身?

最佳答案

您的特殊 View 具有所有有效约束。它可以从其自动放置的 subview 中确定其宽度和高度。

不是使用 sizeThatFits:CGSizeZero 使用 - (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize 和目标尺寸 UILayoutFittingCompressedSize UILayoutFittingExpandedSize.

然后根据返回的大小设置框架的宽度和高度,并根据您的喜好设置 origin.x/.y。

如果您的标签是多行的,请在获取合适尺寸之前设置其 preferredMaxLayoutWidth

编辑:测试和工作!

关于ios - 在单元格中,如何定位和调整从带有自动布局的 Nib 创建的 View 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804241/

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