0

在我的iPhone应用程序,这是基于NavigationController后,我有一些元素A,B,另一种观点认为X的ç子视图当我推控制器到达这一观点,在viewWillAppear中,我调整为了正确处理设备的方向,根据X的大小确定a,b和c的大小和位置。问题在于X的大小正在变更 viewWillAppear已被调用。我将X分类并编写了一个setFrame方法来设置断点并尝试查找原因。下面是指向图像的链接(由于缺少点,我无法直接发布图像)显示viewWillAppear处的中断,以及viewWill在调用堆栈后出现的setFrame中断。我需要帮助来找出为什么X的大小以这种方式被改变。谢谢。查看尺寸变化viewWillAppear中

在viewWillAppear中: http://img718.imageshack.us/img718/9898/viewwillappearbreak.th.png

在子类SETFRAME休息viewWillAppear中后: http://img703.imageshack.us/img703/7995/afterviewwillappear.th.png

在此先感谢。 (我希望图像能够正确显示)。

+0

你对viewWillAppear和viewDidAppear的实现是什么样的?代码片段会很好。特别是,你什么时候从你自己的实现中调用[super viewWillAppear]和[super viewDidAppear]? – occulus

+0

另外,您是否考虑在视图中使用自动调整大小的弹簧,以便在方向更改时调整组件大小和/或正确定位组件?也只是双重检查设置自动调整行为的方式可能是一个好主意。 – occulus

+0

顺便说一句,这可能与layoutSubviews被调用,在这种情况下,下面的答案可能会有用: http://stackoverflow.com/questions/728372/when-is-layoutsubviews-called 顶部的答案有一个链接到一个有用的博客帖子,涉及layoutSubviews何时被调用。 – occulus

回答

0

感谢您提供我提供的有限信息的所有回复。我终于找到了问题的原因。我的笔尖文件包含一个工具栏(我猜是一件坏事,如果你使用的是导航控制器做)我也对我的导航控制器调用

setToolbarHidden: NO 

。我是iPhone编程的新手,并且认为nib文件中的工具栏会以某种方式显示为导航视图工具栏。看来情况并非如此。我为什么这个问题是怎么回事的理解,就是:

  • 的观点得到了装载从笔尖工具栏和导航控制器具有可见的工具栏,所以我的X查看高度是328(2的高度当调整到屏幕大小时,工具栏将被减去,导航控制器和视图中的工具栏将被减去)。
  • viewWillAppear中之后,导航控制器代码显然发现2个工具栏,所以决定将隐藏在一个导航控制器,由44增加我的X视图高度(372)。

我删除从笔尖文件中的工具栏,并通过调用

setToolbarItems 

框架的高度增加了工具栏项到导航控制器工具栏viewWillAppear中后保持不变。

感谢您的回复。我希望这些评论能够让其他人面临同样的问题。