1
我有一個UIView的視角,我想稍微改變,因爲用戶旋轉他的設備。例如,當用戶向右傾斜時,我希望視圖的左側「上升」,而正確的大小「進入」,但僅限於某個點。 這裏是我到目前爲止的代碼:如何在CATransform3D之後重置UIView的位置?
var dynamicTransform = CATransform3DIdentity
dynamicTransform.m34 = 1/(-500)
// Device Tilt
if motionManager.gyroAvailable {
motionManager.gyroUpdateInterval = 0.1/30
motionManager.startGyroUpdates()
motionManager.startGyroUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { (gyroData, NSError) -> Void in
// Perspective Transform
dynamicTransform = CATransform3DRotate(dynamicTransform, CGFloat(Double(gyroData!.rotationRate.y) * M_PI/1080.0), 0, 0.1, 0)
dynamicTransform = CATransform3DRotate(dynamicTransform, -CGFloat(Double(gyroData!.rotationRate.x) * M_PI/1080.0), 0.1, 0, 0)
self.blueView.layer.transform = dynamicTransform
})
一切正常,除了幾個注意事項偉大:
1)當我返回到設備的原始方向的裝置被啓動時,該視圖被扭曲爲(還有一個觀點適用於它)。有可能是我的邏輯有問題,但我不明白..
2)有時視圖順時針/逆時針旋轉,並不保持靜止。
任何幫助將不勝感激, 謝謝!
這將如何有用? – cyril