我正在开发一个带有最新SDK的iOS应用程序.
我已将Landscape右方向设置为可用的唯一方向,我对viewController视图有疑问.
这是我的代码:
- (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil]; [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != AVCaptureVideoOrientationLandscapeRight); } - (void)deviceOrientationDidChange:(NSNotification*)notification { UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; if (orientation == AVCaptureVideoOrientationLandscapeLeft) NSLog(@"Orientation: Landscape Left"); else if (orientation == AVCaptureVideoOrientationLandscapeRight) NSLog(@"Orientation: Landscape Right"); NSLog(@"FRAME: %@",NSStringFromCGRect(self.view.frame)); }
这是我得到的日志:
Orientation: Landscape Right FRAME: {{0,0},{320,568}} Orientation: Landscape Right FRAME: {{0,568}}
我的问题是关于{{0,568}}:
为什么我会得到这些价值?
我认为正确的值是{{0,{568,320}}.
解决方法
我相信框架不会对方向变化做出反应.
编辑:我原来的解决方案过于复杂,无法满足您的需求.如果您正确找到当前方向,那么只要将您的宽度解释为高度(如果您处于横向模式).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。