iphone - 在 iphone 的方向改变时,只旋转一个控件而不是所有其他控件

Posted

技术标签:

【中文标题】iphone - 在 iphone 的方向改变时,只旋转一个控件而不是所有其他控件【英文标题】:iphone - On orientation change of iphone , rotate only one control and not all others 【发布时间】:2010-06-20 10:43:18 【问题描述】:

我在一个视图中有 UIImageView、几个标签、按钮等。 目前我有纵向模式的实现。 当 iphone 的方向改变时,我只想旋转图像视图。其余所有控件不应更改。 如何实现仅图像视图的旋转?

【问题讨论】:

【参考方案1】:

我最近不得不做一些非常相似的事情。我所做的是禁用自动旋转,然后像这样使用设备通知:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIDeviceOrientationDidChangeNotification object:nil];

- (void)didRotate:(NSNotification *)notification   
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
    switch (orientation) 
        case UIDeviceOrientationUnknown:
        case UIDeviceOrientationFaceUp:
        case UIDeviceOrientationFaceDown:
            return;
            break;
    

    // Do something

您需要处理一些情况,例如快速轮换等。如果您需要更多信息,请告诉我。

【讨论】:

感谢您的回复。但几乎不需要澄清。我是否必须创建从 ImageView 继承的不同视图类并对其进行处理,或者我可以在 viewController 本身中处理“didRotate”? 我的建议是在视图控制器中处理这个问题。也许在您的 viewDidLoad 中设置观察者。对于任何方向更改,将立即发送通知。所以我保存了方向更改并按原样设置动画。如果在动画期间有另一个方向变化,我会重新开始动画,直到没有变化。

以上是关于iphone - 在 iphone 的方向改变时,只旋转一个控件而不是所有其他控件的主要内容,如果未能解决你的问题,请参考以下文章

方向改变时Iphone风格改变

检测 iPhone 移动是不是改变方向?

JavaScript Iphone风格改变方向改变

更改 iPhone 中的方向时如何更改视图控制器的视图?

iPhone 方向问题

iOS (iPhone/iPad) SDK - 应用程序不改变方向