我使用UINavigationController来管理我的UIViewControllers层次结构。对于其中一个UIViewController,我需要通过编程(取决于特定条件)更改它的视图边界,因此我使用了setBounds,它运行良好。
我的问题是:当我更改这个视图边界时,然后将另一个UIViewController推到UINavigationController堆栈,然后弹出最后一个UIViewController,我的边界更改就会丢失。我想这是因为我的UIView被重新绘制了,但是我认为边界修改仍然是活的。
在视图出现后,我可以再次更改UIView边界,但是用户会注意到视图边界的修改。
有小费吗?这是一种常见的情况,还是因为我的UIView是从XIB加载的,而我遗漏了一个参数或其他什么?
谢谢:)
编辑:刚刚注意到,在将新的UIViewController推到堆栈之前(在动画期间),我的UIView边界被更改了。
发布于 2009-12-30 16:45:24
您可能希望在-viewWillAppear:中执行所有的边界设置(包括第一次)。这应该会被调用之前,你被放在屏幕上的初始推送和流行的情况。
发布于 2009-12-30 16:08:22
您的视图可能具有自动调整大小设置。如果不希望这样,请将自动调整大小设置为0:
myView.autoresizingMask = 0;发布于 2009-12-30 16:46:27
你在哪里改变界限?也许你应该把它放在类似于viewWill极品/说教外观的东西里,这样每次下一个视图控制器从堆栈中弹出时,边界就会改变吗?
https://stackoverflow.com/questions/1980942
复制相似问题