解除模态视图控制器时,基础UIScrollView会调整为全屏

rye*_*ead 5 iphone uiscrollview modalviewcontroller ios

我在顶部[在Apple的状态栏下面]有一个自定义状态栏的布局,然后UIScrollview在中间部分从左到右分页,然后我UIView在底部有一些自定义按钮.所以这是一个简单的三层布局,效果很好.但是,下方视图中的三个自定义按钮会显示一个ModalViewController,当它被取消时,它会将中间调整为UIScrollView全屏,并将其显示在前面,覆盖我拥有的其他两个视图.

还有其他几个人已经注意到这种行为,但似乎他们给出的唯一答案是重新调整UIScrollView回原始坐标的大小.当然,这会起作用,但对我来说似乎是一个黑客攻击,我想知道幕后真的发生了什么,以及如何正确地纠正这个问题.

其他具有相同明显问题的SO链接:

还有一些人已经注意到这种行为只影响3.0及以上,所以我不确定这是否是一个"功能",我只是不明白行为本应该做什么,或者是什么.如果有人能对此有所了解,我将不胜感激.

glu*_*uon 5

我有完全一样的问题.在模态视图的父级中,我使用了这个:

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

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

它工作正常,即使它听起来像是对我的黑客攻击.