【问题标题】:iphone - handling view rotationsiphone - 处理视图旋转
【发布时间】:2010-09-27 09:28:53
【问题描述】:

我正在创建一个大小为 320 像素宽和 120 像素高的小型 UIView。 我正在使用以下代码将视图添加到最顶部的窗口。

baseview.frame = CGRectMake(0,20,320,120);
UIWindow* window = [[UIApplication sharedApplication] keyWindow];
[window addSubview:baseView];    
[window bringSubviewToFront:baseView];

上面的代码在状态栏下方显示了一个视图,它与预期的一样。 当应用程序的方向是纵向时,这可以正常工作。但是当应用程序的方向是倒置的纵向时,我又添加了一行代码来旋转视图,那就是

[baseView setTransform:CGAffineTransformMakeRotation(-M_PI/2)];

但是现在,我在应用程序底部看到了视图(而不是在状态栏下方的顶部看到),并且基本视图正在旋转并正确显示,除了底部的位置。我应该如何处理这种情况才能在状态栏下显示视图。

【问题讨论】:

    标签: iphone orientation addsubview


    【解决方案1】:

    如果您将有问题的视图作为子视图添加到窗口中的主视图中,则会为您处理旋转和定位。

    如果您确实需要将视图添加为关键窗口的子视图,我认为您需要调整视图的中心。

    【讨论】:

    • 即使我尝试设置视图的中心。仍然无法正常工作。我怀疑的问题是 0,0 坐标在纵向模式下从左上角开始。即使在旋转设备后,坐标也将具有相同的位置。这就是为什么它没有更改为顶部位置。
    • 不能将视图作为子视图添加到主视图中?既然这样就可以解决问题,而且我很少需要将视图作为子视图添加到主窗口。
    • 我同意你的看法。我正在尝试创建自己想要添加到主窗口的警报视图。即使出现键盘,我的警报也应该出现在应用程序上方。最后,设置中心解决了我的问题。感谢您的信息
    • 确实,这将是一个有效的案例。很好,你已经解决了。
    • 现在我遇到了其他方向的问题,即横向。如何在横向模式下确定中心?在倒置肖像模式下,我将中心设置为 160,400 并且它有效。看不懂坐标计算.....
    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    相关资源
    最近更新 更多