wom*_*t57 9 iphone orientation ios
如何以编程方式检查iOS中的设备方向是否已锁定?我在UIDevice中什么都看不到.我知道这应该对应用程序透明.但是如果方向被锁定,我想改变显示内容的方式(正如Youtube应用程序所做的那样;它会锁定到横向而不是纵向).这一定是可能的.
您可以使用该UIAccelerometer
课程详细确定手机的方向.如果加速度矢量进入其最大绝对分量在X轴上的状态,那就是横向.从理论上讲,这可用于检测方向锁:如果在发生这种情况的几秒钟内,控制器没有接到电话shouldRotateToInterfaceOrientation
,而且[[UIDevice currentDevice] orientation]
房产不在景观中,那么您可以安全地假设用户锁定方向.
这很复杂,并且具有延迟,因为shouldRotateToInterfaceOrientation
在实际矢量实际进入景观区域之后将被调用.整个想法有点像黑客,你可能应该重新考虑为什么当用户有偏好不显示景观视图时你真的需要呈现景观视图.
如何检测方向是否锁定无法实现.YouTube应用不会锁定横向,它只是横向显示电影,但是当您旋转iPhone时,电影也会旋转(如果没有方向锁定).
IOW方向锁由系统处理,对您的应用程序透明.
如果要实现此功能 - 即使iPhone处于纵向模式并稍后启用视图旋转,也只需在横向模式下显示视图.它的行为方式与YouTube应用相同.
更新评论:
.h
BOOL rotationEnabled;
.m
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return rotationEnabled || ( toInterfaceOrientation == UIInterfaceOrientationLandscapeRight );
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
rotationEnabled = YES;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10799 次 |
最近记录: |