gpt4 book ai didi

ios - 以编程方式将 View 对象定位在其最近邻居的下方

转载 作者:行者123 更新时间:2023-11-28 15:23:26 26 4
gpt4 key购买 nike

以编程方式(因为 Interface Builder 是由 Satan 设计的),我如何才能将一个 View 对象放置在另一个 View 对象下方,就像 Interface Builder 按“最近邻”定位 View 对象一样?

如果这是第一个 View 对象:

titleLabel.frame.size.width = view.frame.width - 32
titleLabel.frame.origin.x = CGFloat(16)
titleLabel.frame.origin.y = CGFloat(titleMargin + 32)

如何将第二个 View 对象放置在它的正下方?我必须创建一个函数来获取其上方所有内容的高度并将其设置为上边距吗?看起来很粗糙。

subtitleLabel.frame.size.width = view.frame.width - 32
subtitleLabel.frame.origin.x = CGFloat(16)
subtitleLabel.frame.origin.y = ???

我预计解决方案会比示例中列出的复杂得多。

最佳答案

好吧,不使用约束和自动布局(顺便说一下,这完全独立于 IB),更改你的最后一行:

titleLabel.frame.size.width = view.frame.width - 32
titleLabel.frame.origin.x = CGFloat(16)
titleLabel.frame.origin.y = CGFloat(titleMargin + 32)

subtitleLabel.frame.size.width = view.frame.width - 32
subtitleLabel.frame.origin.x = CGFloat(16)
subtitleLabel.frame.origin.y = titleLabel.frame.origin.y + titleLabel.frame.size.height

那么,当然,如果您要添加另一个元素并希望它“跟随在下方”:

nextLabel.frame.size.width = view.frame.width - 32
nextLabel.frame.origin.x = CGFloat(16)
nextLabel.frame.origin.y = subtitleLabel.frame.origin.y + subtitleLabel.frame.size.height

如果您有很多元素,请跟踪 y 位置变量或使用对象变量来维护“previousObject”和“currentObject”。

只是举个例子,无论如何。

关于ios - 以编程方式将 View 对象定位在其最近邻居的下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45598710/

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