当关闭模态视图控制器时,底层的UIScrollView会调整为全屏大小。

5
我有一个布局,顶部有自定义状态栏[在Apple的状态栏下面],然后是中间分页的UIScrollview,底部有一些自定义按钮的UIView。所以是一个简单的三窗格布局,它运行得很好。然而,底部视图上的三个自定义按钮会带来一个ModalViewController,当它被关闭时,它会将中间的UIScrollView调整为全屏,并将其置于前端,覆盖其他两个视图。
有几个人注意到了这种行为,但似乎他们唯一得到的答案是重新调整UIScrollView回到原始坐标。当然,这样做可以解决问题,但对我来说似乎是一种hack,我想知道背后的真正情况,以及如何正确地纠正这个问题。
其他具有相同显然问题的SO链接:

还有其他人指出这种行为仅影响3.0及以上版本,所以我不确定这是一个“特性”,我只是不理解这个行为应该做什么。如果有人能够解释一下,我将不胜感激。

2个回答

5

我有完全相同的问题。 在模态视图的父级中,我正在使用以下内容:

-(void)viewWillAppear:(BOOL)animated{
    [self.view setFrame:CGRectMake(0, 0, originalWidth, originalHeight)];
}

其中 originalWidth 和 originalHeight 是我的父视图的原始大小。

这个方法可以正常工作,尽管对我来说听起来像是一个 hack。


1
你尝试过更改nib文件中的设置吗?
检查nib中滚动视图的自动调整大小。

我改了自适应大小的设置,但好像什么都没变。谢谢! - ryebread

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接