UIViewcontroller 在横向模式下保持纵向坐标

Posted

技术标签:

【中文标题】UIViewcontroller 在横向模式下保持纵向坐标【英文标题】:UIViewcontroller keeps portrait coordinates when in landscape mode 【发布时间】:2013-12-09 23:11:58 【问题描述】:

我有一个旨在以横向模式启动的应用程序,这一切都很好。我添加一个图像视图来覆盖屏幕,然后在中途添加一个滚动视图。再次一切正常。

然后我再次添加一系列 uiimageviews 一切都很好。我注意到如果我尝试单击最右侧的图像没有响应,但此之前的其他图像工作正常。经过大量挖掘,我发现视图控制器保持纵向坐标。当我单击转到另一个视图然后返回主视图时,底部有一个标签栏,最右边的 uiimageview 不起作用。有没有人见过这个?我猜视图在返回时会重新绘制自己?

【问题讨论】:

【参考方案1】:

您应该使用 .bounds 属性而不是视图的 .frame 属性。 边界遵循 UIVIew 的坐标系。 这个答案很好地解释了:https://***.com/a/8181113/402223

【讨论】:

【参考方案2】:

看到这篇回答了我的问题的文章here

- (void)viewDidLayoutSubviews

    // fix for ios7 bug in UITabBarController
    self.selectedViewController.view.superview.frame = self.view.bounds;

注意不要将它添加到 viewdidload 方法中。

感谢 Martijn,您让我走上了正轨。

【讨论】:

以上是关于UIViewcontroller 在横向模式下保持纵向坐标的主要内容,如果未能解决你的问题,请参考以下文章

setRefreshed:在横向模式下发送到 UIViewController 的无法识别的选择器

即使用户在横向模式下旋转他们的设备,是不是在 Gluon API 中保持我们的应用程序处于纵向模式?

UIPagviewController 子视图在横向模式下消失

强制 UIViewController 处于横向模式 iOS7

导航控制器:在横向模式下,“返回”动画会向下推

iOS:在横向模式下无法调整模式视图中的框架大小