UIDeviceOrientationDidChangeNotif
全部标签 我是iOS的新手,我正在拼命尝试让方向更改在我的应用程序中正常工作。研究完后我会这样做:在我的应用程序中,我有一个管理七个UIViewController子类的NavigationController。在项目摘要选项卡中,我激活了所有4个设备方向。每个UIViewcontroller子类都有一个xib文件,所有xib文件都激活了“autoresizesubviews”。UIViewController的子类都有:-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientati
如果设置了自动旋转,我可以接收UIDeviceOrientationDidChangeNotification事件。但是当禁用屏幕自动旋转时,方向通知将不再起作用。我想达到的效果是像iPhoneCamera和Camera+一样:无论用户锁定或不锁定屏幕旋转,应用程序都可以立即正确地对应旋转变化。有谁知道为什么当用户锁定屏幕旋转时不发送通知?即使禁用了自动旋转,我如何对应设备方向的变化? 最佳答案 我还想获得相机应用程序的效果,即使用户设置了纵向方向锁定,该应用程序也会检测设备的方向。UIDeviceOrientationDidCha
funcshouldirotate(){varwhichwaywhere:String{ifUIDevice.currentDevice().orientation==UIDeviceOrientation.LandscapeLeft{return"left"}ifUIDevice.currentDevice().orientation==UIDeviceOrientation.LandscapeRight{return"right"}ifUIDevice.currentDevice().orientation==UIDeviceOrientation.PortraitUpsideDo
因为willAnimateRotationToInterfaceOrientation:duration:是deprecated在iOS8中,需要使用viewWillTransitionToSize:withTransitionCoordinator:instead.但是,在iOS8上我的ViewController中不会调用此方法。为了让这个回调起作用,还有什么我需要实现的吗?我在文档中找不到任何内容。我唯一能找到的是它属于新的UIContentContainer协议(protocol)。然而,即使我明确地将它添加到我的Controller的协议(protocol)中,它也不起作用。
因为willAnimateRotationToInterfaceOrientation:duration:是deprecated在iOS8中,需要使用viewWillTransitionToSize:withTransitionCoordinator:instead.但是,在iOS8上我的ViewController中不会调用此方法。为了让这个回调起作用,还有什么我需要实现的吗?我在文档中找不到任何内容。我唯一能找到的是它属于新的UIContentContainer协议(protocol)。然而,即使我明确地将它添加到我的Controller的协议(protocol)中,它也不起作用。
在我的工作应用程序(iOS7.0.1)中,UIDeviceOrientationDidChangeNotification被调用。现在,当我在iOS8.0中运行此应用程序时,UIDeviceOrientationDidChangeNotification未被调用。尝试了很多,但没有成功。EDIT-1:我使用下面的代码来添加方向变化的观察者。在iOS7中运行完美。iOS8不走运。[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(deviceOrientationDidChange:)name:UI