首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

iOS 禁止界面旋轉但監聽設備旋轉事件

     編輯:程式設計疑難解答

需求

ViewController 鎖定豎屏,但需感知用戶旋轉手機以觸發特定邏輯(如切換全屏播放器)。

解決方案:CoreMotion 陀螺儀

import CoreMotion
let motionManager = CMMotionManager()
motionManager.accelerometerUpdateInterval = 0.2
motionManager.startAccelerometerUpdates(to: .main) { data, error in
    guard let acceleration = data?.acceleration else { return }
    // 簡單判斷:x 軸絕對值大於 y 軸 → 橫屏
    let isLandscape = abs(acceleration.x) > abs(acceleration.y)
    // 觸發業務邏輯
}

優勢

  • 不依賴界面旋轉通知,App 鎖定方向不影響。
  • 可獲取精確傾角,實現更豐富交互(如 AR、手勢)。
  • 系統級傳感器融合,功耗可控。

注意:需在 Info.plist 添加 NSMotionUsageDescription 說明。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved