当关闭模态视图控制器时,底层 UIScrollView 调整为全屏
Posted
技术标签:
【中文标题】当关闭模态视图控制器时,底层 UIScrollView 调整为全屏【英文标题】:When Dismissing a Modal View Controller the underlying UIScrollView resizes to fullscreen 【发布时间】:2012-02-16 08:14:44 【问题描述】:我有一个布局,顶部有一个自定义状态栏 [在 Apple 的状态栏下方],然后是一个在中间部分从左到右分页的 UIScrollview
,然后我有一个带有一些自定义按钮的 UIView
底部。所以一个简单的三窗格布局,效果很好。但是,下部视图上的三个自定义按钮会弹出一个ModalViewController
,当它被关闭时,它会将中间的UIScrollView
调整为全屏,并将其带到前面,覆盖我拥有的其他两个视图.
还有其他几个人注意到了这种行为,但他们给出的唯一答案似乎是将UIScrollView
重新调整为原始坐标。当然,这会起作用,但对我来说这似乎是一个 hack,我想知道这里幕后到底发生了什么,以及如何正确纠正这个问题。
具有相同明显问题的其他 SO 链接:
Dismiss modal view changes underlying UIScrollView Dismissing Modal View Controller causing layout problems Weird Behavior on dismissing Modal View Controller还有其他人注意到该行为仅影响 3.0 及更高版本,因此我不确定这是否是“功能”,我只是不了解该行为应该做什么,或者是什么。如果有人能对此有所了解,我将不胜感激。
【问题讨论】:
【参考方案1】:我也有同样的问题。 在模态视图的父级中,我使用的是这个:
-(void)viewWillAppear:(BOOL)animated
[self.view setFrame:CGRectMake(0, 0, originalWidth, originalHeight)];
其中 originalWidth 和 originalHeight 是我的父视图的原始大小。
它工作得很好,即使这对我来说听起来也像是一个 hack。
【讨论】:
【参考方案2】:您是否尝试过更改 nib 文件中的设置?
检查 nib 中滚动视图的自动调整大小。
【讨论】:
我更改了自动调整大小设置,但似乎没有任何改变。谢谢!以上是关于当关闭模态视图控制器时,底层 UIScrollView 调整为全屏的主要内容,如果未能解决你的问题,请参考以下文章