gpt4 book ai didi

objective-c - 加载 View 时重置 UILabels 的边界会出现故障 (iOS)

转载 作者:行者123 更新时间:2023-11-28 20:41:14 27 4
gpt4 key购买 nike

我有一个带有 .xib 的 UIViewController,它有 2 个名为“LblA”和“LblB”的 UILable。让我们将此 ViewController 称为“A”。 LblA 和 LblB 的边界或定位分别取决于@property 的 lblABounds 和 lblBBounds。如果未设置 lblABounds 和 lblBounds 的值,lblA 和 lblB 将定位到默认边界,因为它们是使用 .xib 中的 Interface Builder 放置的。从 lblABounds 和 lblBBounds 获得的 lblA 和 lblB 的新边界在 ViewDidLoad() 函数中设置。

还有另一个加载“A”的 UIViewController(我们称之为“B”)。它首先调用“A”的 init 来检索一个对象。然后使用该对象设置 lblABounds 和 lblBBounds 的值。然后通过将 ViewConroller 添加为“B”的 subview 来动画和加载 ViewConroller。一切正常,除了...

故障:

B 动画并翻转以显示 A。但是当它翻转时,为了一瞥,lblA 和 lblB 被定位到它们的默认位置,但是一旦动画结束,它们就移动到由 lblABounds 和 lblBounds 的值设置的位置。

此故障的疑似原因:

由于lblABounds和lblBBounds的值得到的lblA和lblB的位置设置在ViewDidLoad中。所以当它是动画的时候, View 实际上并没有被加载并且 ViewDidLoad 也没有被调用,所以一眼看去,lblA 和 lblB 被定位到默认位置。一旦 View 完成动画并调用 ViewDidLoad,lblA 和 lblB 就会从默认位置消失-出现到由 lblABounds 和 lblBBounds 的值设置的位置。

我尝试过但没有奏效的修复

  • 在 init() 中设置 lblA 和 lblB 的新界限。没有任何反应:S 没有任何代码被执行。

...请帮忙。我希望我解释得很好。

最佳答案

希望我正确理解了您的问题。

您可能还想在将 View 添加为 subview 之前尝试加载该 View 。这将强制调用 View 加载方法并在调用动画之前设置标签位置。要为 View 强制加载 View Controller ,您需要请求 View 属性

viewController.view

希望对您有所帮助!

关于objective-c - 加载 View 时重置 UILabels 的边界会出现故障 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8506829/

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