Мое приложение использует CMMotionManager для отслеживания движения устройства, но iOS всегда возвращает данные о движении устройства в стандартной ориентации устройства (кнопка дома внизу).Как настроить данные CMMotionManager для ориентации в iOS 8?
Чтобы получить данные о движении в ту же ориентацию, что и мой UIView, я накапливаю вид превращается из моего взгляда вниз к окну, как это:
CGAffineTransform transform = self.view.transform;
for (UIView *superview = self.view.superview; superview; superview = superview.superview) {
CGAffineTransform superviewTransform = superview.transform;
transform = CGAffineTransformConcat(transform, superviewTransform);
}
Это преобразование получает рассчитывается корректно под IOS 6 & 7, но iOS 8 изменяет модель вращения, и теперь представления всегда возвращают преобразование идентичности (без вращения) независимо от того, как устройство ориентировано. Однако данные от менеджера движения все еще фиксированы в стандартной ориентации.
Мониторинг уведомлений о вращении UIDevice и ручной расчет четырех преобразований походит на один подход к получению этого преобразования под iOS 8, но это также кажется плохим, поскольку ориентация устройства не обязательно соответствует ориентации моего представления (то есть, вверх на iPhone является ориентация устройства не поддерживается нормально).
Каков наилучший способ получить результат от CMMotionManager в ориентации конкретного UIView под iOS 8?
Спасибо за понимание –
Нет проблем! Надеемся, что это поможет другим людям найти то же самое. –