我需要以编程方式了解是否"纵向定位锁定"已设置设备设置选项。任何帮助将不胜感激。
答案 0 :(得分:0)
没有API可以告诉您方向锁是否已打开,但是,您可以推断它。
您需要做的第一件事是使用加速度计来确定设备的保持方式:
CMMotionManager * motionManager = [[CMMotionManager alloc] init];
motionManager.accelerometerUpdateInterval = 0.5;
[motionManager startAccelerometerUpdatesToQueue: [[NSOperationQueue alloc] init]
withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
CMAcceleration acceleration = accelerometerData.acceleration;
UIDeviceOrientation orientation = fabs(acceleration.y) < fabs(acceleration.x) ?
acceleration.x > 0 ? UIDeviceOrientationLandscapeRight : UIDeviceOrientationLandscapeLeft :
acceleration.y > 0 ? UIDeviceOrientationPortraitUpsideDown : UIDeviceOrientationPortrait;
// Check orientation == [UIDevice currentDevice].orientation
}];
然后检查您计算的方向是否与当前UIDeviceOrientation
相同。
如果它们不同,则打开方向锁定。 如果它们是相同的,你不能认为它是打开还是关闭。