如何獲取傾斜圖像的當前角度?獲取UIView的當前傾斜角度
我用歪曲它的代碼是:
CGAffineTransform t = CGAffineTransformMake(1.0, 0.0, tan(angle*(M_PI/480)), 1.0, 0.0, 0.0);
如何獲取傾斜圖像的當前角度?獲取UIView的當前傾斜角度
我用歪曲它的代碼是:
CGAffineTransform t = CGAffineTransformMake(1.0, 0.0, tan(angle*(M_PI/480)), 1.0, 0.0, 0.0);
試試這個:
CGFloat skew_c = [(NSNumber *)[view valueForKeyPath:@"layer.transform.c"] floatValue];
的keyPath是guesstimated,但應工作。 CGAffineTransformMake docs。
編輯:
看起來CGAffineTransform被轉換成4×4矩陣CATransform3D
。
transform
屬於CALayer
of CATransform3D
類型。
這意味着你可以存取權限m11
.. m44
參數與像電話:
CGFloat m11 = [(NSNumber *)[view valueForKeyPath:@"layer.transform.m11"] floatValue];
...
...
CGFloat m44 = [(NSNumber *)[view valueForKeyPath:@"layer.transform.m44"] floatValue];
你會仍然需要做一些計算來獲得你的歪斜的因素。你可以從this great answer得出你的c_factor的公式。
你可以嘗試這樣的事情:
CGFloat angle = [(NSNumber *)[view valueForKeyPath:@"layer.transform.rotation.z"] floatValue];
它不起作用,結果總是0 – xXDraklordXx
斯克拉姆看法是正確的,只有的keyPath是錯誤的。 –
試試這個:
CGFloat radians = atan2f([self myview].transform.b, [self myview].transform.a);
有了這個,你可以得到任何UIView
的當前角度。
保持搖...喜歡... :)
來自1位用戶的令人印象深刻的答案! – Fattie
謝謝。 Fattie –
我不明白怎麼做呢=( – xXDraklordXx
我也想弄明白,問題是你給'CGAffineTransformMake'的參數被翻譯成另一種矩陣,所以你不能得到他們通過簡單地閱讀他們回來[3D投影 - 維基](http://en.wikipedia.org/wiki/3D_projection#Perspective_projection)也是有用的,但相當複雜。 –
這對我來說太複雜了 – xXDraklordXx