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 的方向改变时,只旋转一个控件而不是所有其他控件的主要内容,如果未能解决你的问题,请参考以下文章