iphone - 关闭 ModalViewController 后 UIScrollView 的内容发生了变化

标签 iphone uiscrollview

我有一个分页 ScrollView 。每个页面都有一个 View Controller (buttonViewController)来管理按钮网格。如果按下其中一个按钮,buttonViewController 会模态弹出另一个 View Controller (detailViewController)。

问题是,当我关闭模态视图 Controller 时,可见的 ButtonViewController 向下移动了大约 20 像素。奇怪的是,只有可见页面发生了移动。如果我滚动到已加载的另一个页面,它仍然处于正确的位置。

我的问题与dismissing modalViewController moves main view buttons around iphone基本相同

但是,该问题的公认答案假设状态栏是隐藏的。我没有隐藏应用程序中的状态栏。

还有其他想法吗?

还有一个注意事项:这种转变仅在我第一次启动模态视图 Controller 时发生。如果我继续打开和关闭模态视图 Controller ,一切都会保持不变。

进一步说明:如果我添加以下代码:

    CGRect frame = self.view.frame;
frame.origin.y=0;
self.view.frame = frame;

在我关闭模态视图 Controller 后,我就可以解决这个问题了。框架似乎在 y 方向上移动了 20 个像素。但我仍然不知道是什么导致了这一举动。

最佳答案

嗯,我遇到了这个问题,这是由于我的第一个 viewController 的设置方式(在 UIWindow 上)造成的,这很奇怪,因为我以前从未发生过这种情况,我观察到的行为是,当您添加点 (0,0) 处的 subview 将与状态栏重叠,这并不常见,通常 View 知道状态栏并且它们的行为适当。作为一个副作用,当一个人按下一个模态视图来取消状态栏时,在关闭它之后,我看到了与您所看到的相同的问题。我要做的修复是将 UIWindows View 设置为 Nib 中的 Controller View ,这似乎解决了所有问题。我再次不知道为什么简单地使用 CGRectMake(0,0,320,460) 以编程方式添加到窗口会出现这种奇怪的行为,因为我一直在为我之前的所有项目执行此操作并看到正确的行为。但当我把它安装在 Nib 上时,它按预期工作了。也许这也是你的问题。

关于iphone - 关闭 ModalViewController 后 UIScrollView 的内容发生了变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1186492/

相关文章:

ios - 如何向 UIWindow 添加 subview 并防止其在使用 UINavigationController 转换时消失?

ios - UIScrollView 没有在 Swift 中正确添加 subview

ios - UITableViewCell 中 UITextField 的原始值

iphone - 快速滚动 UIScrollView 时 UIImageView 停止调整大小

iphone - iOS:防止系统发送低内存警告时卸载后台定位服务

iphone - UIView 和 UIControl 在 UIScrollView 内拖动时的区别

iphone - 在后台获取核心数据

iphone - 如何从第一页重新启动基于 Air 的 iOS 应用程序?

iphone - iOS 5从应用程序发送电子邮件的最简单方法

iphone - UIView backgroundColor与图像