我有一个带有.xib的UIViewController,它有2个名为“LblA”和“LblB”的UILables。让我们称之为ViewController“A”。 LblA和LblB的界限或位置分别取决于@ property的lblABounds和lblBBounds。如果未设置lblABounds和lblBounds的值,则lblA和lblB将定位到默认边界,因为它们是使用.xib中的Interface Builder放置的。从lblABounds和lblBBounds获得的lblA和lblB的新边界在ViewDidLoad()函数中设置。
还有一个加载“A”的UIViewController(让它称之为“B”)。它首先调用init的“A”来检索一个对象。然后使用该对象,它设置lblABounds和lblBBounds的值。然后通过添加它作为“B”的子视图来动画并加载ViewConroller。一切正常,除了......
故障:
B动画和翻转以显示A.但是当它翻转时,为了一瞥,lblA和lblB被定位到它们的默认位置但是一旦动画结束它们只是 poof 移动到由lblABounds和lblBounds值设置的位置。
这个小故障的可疑原因:
从lblABounds和lblBBounds的值获得的lblA和lblB的位置在ViewDidLoad中设置。因此,虽然它是动画,但实际上没有加载视图并且尚未调用ViewDidLoad,因此,为了一瞥,lblA和lblB被定位到默认位置。一旦视图完成动画并且调用了ViewDidLoad,lblA和lblB就会消失 - 从默认位置出现到由lblABounds和lblBBounds的值设置的位置。
我尝试但未能正常工作的修补程序
...请帮忙。我希望我解释得很好。
答案 0 :(得分:3)
我希望我能正确理解你的问题。
您可能还想在将视图添加为子视图之前尝试加载视图。这将强制调用视图do load方法并在调用动画之前设置标签位置。要强制加载视图控制器以进行查看,您需要请求视图属性
viewController.view
我希望有所帮助!