方向改变引发的方法
在iOS设备方向改变的时候,这里是一种运行方法吗?
我想只改变屏幕上的一些对象的方向,而不是其他的。
我使用什么代表
干杯 – 一个新手
取决于你想要做出什么反应:
如果在旋转之前,从UIViewController 覆盖 :
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { // do something before rotation }
如果你想在旋转后执行某些操作:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { // do something after rotation }
参考:
UIDeviceOrientationDidChangeNotification
UIApplication
发布了UIApplicationWillChangeStatusBarOrientationNotification
和UIApplicationDidChangeStatusBarOrientationNotification
并且每个都有一个相关的委托callback。
如果视图控制器是由窗口pipe理的控制器层次结构的一部分,则UIViewController
接收由UIDevice通知触发的多个定向相关调用。
如果您已经在使用UIViewController,请实现一些方向相关的方法,否则注册UIDevice通知。 最重要的UIViewController方法是shouldAutorotateToInterfaceOrientation
因为如果返回NO
,其他的不被调用。
willRotateToInterfaceOrientation:是您可能正在查看的方法。 阅读那一个。
UIViewController
被发送willRotateToInterfaceOrientation:duration:
在旋转之前,和didRotateFromInterfaceOrientation:
旋转之后。
要configuration其他animation,请使用willAnimateRotationToInterfaceOrientation:duration:
or willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:
, didAnimateFirstHalfOfRotationToInterfaceOrientation:
and willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:
后者用于两步animation,当您将页眉或页脚视图移出主屏幕时,通常会使用这两个animation。
我的沙盒应用程序: https : //github.com/comonitos/programatical_device_orientation
解决scheme很简单:
在接口(h文件)中:
BOOL rotated;
在执行(m文件):
-
改写
– (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {return rotated; }
2调用[自设置]
-(void) setup { rotated = YES; [[UIDevice currentDevice] setOrientation:UIDeviceOrientationLandscapeLeft]; rotated = NO; }
只要使用这个代码片段来检查方向的变化。
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { if UIDevice.currentDevice().orientation.isLandscape.boolValue { print("Landscape") } else { print("Portrait") } }
- iOS应用程序如何获取MAC地址?
- 如何防止UITableView重用自定义单元格Swift
- Swift:委托示例
- WKWebview – Javascript和本地代码之间的复杂通信
- QtCreator for iOS:如何用我的应用程序部署一个dylib共享库
- Cocos2d 2.x:理解ccBezierConfig beheaviour
- heightForRowAtIndexPath间歇性地崩溃
- 避免video开始和结束时的模糊(甚至在使用setPreferredVideoStabilizationMode:AVCaptureVideoStabilizationModeAuto之后)?
- UIPanGestureRecognizer – 立即移动视图