Objective c 加载视图时重置UILabel的边界会出现问题(iOS)

Objective c 加载视图时重置UILabel的边界会出现问题(iOS),objective-c,ios,cocoa-touch,animation,Objective C,Ios,Cocoa Touch,Animation,我有一个带有.xib的UIViewController,它有两个UILable,分别名为“LblA”和“LblB”。让我们将此ViewController称为“A”。LblA和LblB的边界或位置分别取决于@property的lblABounds和lblBBounds。如果未设置lblABounds和lblBounds的值,则lblA和lblB将定位到默认边界,因为它们是使用.xib中的Interface Builder放置的。从lblABounds获得的新边界以及lblA和lblB的lblBB

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

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

小故障:

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

此故障的可疑原因:

因为从LBLabBounds和lblBBounds的值中获得的lblA和lblB的位置在ViewDidLoad中设置。因此,在制作动画时,视图实际上尚未加载,也未调用ViewDidLoad。因此,为了让人一瞥,lblA和lblB被定位到默认位置。使用动画完成视图并调用ViewDidLoad后,lblA和lblB消失将从默认位置显示到由lblABounds和lblBBounds的值设置的位置

我尝试过但没有成功的修复

  • 在init()中设置lblA和lblB的新边界。什么也没发生:没有一个代码被执行

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

我希望我正确地理解了你的问题

在将视图添加为子视图之前,您可能还希望尝试加载该视图。这将强制调用view Dod load方法,并在调用动画之前设置标签位置。要强制为视图加载视图控制器,需要请求view属性

viewController.view

我希望这有帮助

我希望我正确理解了你的问题

在将视图添加为子视图之前,您可能还希望尝试加载该视图。这将强制调用view Dod load方法,并在调用动画之前设置标签位置。要强制为视图加载视图控制器,需要请求view属性

viewController.view

我希望这有帮助

天哪!它修好了!非常感谢你,艾坦!你太棒了。我希望我能给你们更多的选票。在开始动画之前,我刚刚调用了viewController.view,它得到了修复。OMG!它修好了!非常感谢你,艾坦!你太棒了。我希望我能给你们更多的选票。在开始动画之前,我刚刚调用了viewController.view,它得到了修复。