我需要检测设备何时处于纵向,以便我可以发出特殊的动画。但我不希望我的视图自动旋转。
当设备旋转为纵向时,如何覆盖自动旋转的视图?我的应用程序只需要以横向显示它的视图,但如果我希望能够检测到纵向旋转,我似乎也需要支持纵向。
尝试在应用程序加载或视图加载时执行以下操作:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:[UIDevice currentDevice]];
然后添加以下方法:
- (void) orientationChanged:(NSNotification *)note
{
UIDevice * device = note.object;
switch(device.orientation)
{
case UIDeviceOrientationPortrait:
/* start special animation */
break;
case UIDeviceOrientationPortraitUpsideDown:
/* start special animation */
break;
default:
break;
};
}
上述内容将允许您注册设备的方向变化,而无需启用视图的自动旋转。
Note
在 iOS 中的所有情况下,当您添加观察者时,也会在适当的时间将其删除(可能但并非总是在视图出现/消失时)。您只能拥有“成对”的观察/取消观察代码。如果您不这样做,应用程序将会崩溃。选择观察/不观察的位置超出了本 QA 的范围。但是,您必须有一个“unobserve”来匹配上面的“observe”代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)