簡體   English   中英

iOS獲取子視圖的旋轉

[英]iOS Get Subview's Rotation

我正在使用CGAffineTransformMakeRotation使用其transform屬性旋轉子視圖。 以后,我需要找出子視圖旋轉了多遠。 我意識到我可以簡單地使用int來跟蹤此情況,但是有沒有一種簡單的方法來獲取子視圖的當前旋轉?

CGAffineTransformMakeRotation明確定義為返回一個矩陣,其中變換的a值為cos(angle), b sin(angle)等等(並且,鑒於變換的工作方式,這是它唯一可以做的事情)。

因此,您可以通過執行一些簡單的逆三角法來計算當前旋轉。 atan2可能是要使用的東西,因為它會自動找出合適的象限。

所以,例如

- (float)currentAngleOfView:(UIView *)view
{
    CGAffineTransform transform = view.transform;
    return atan2f(transform.b, transform.a);
}

因為這將產生一個反切線,將涉及以適當的方式划分ab字段,所以即使您應用縮放(只要每個軸都相同)或平移,該方法也將繼續起作用。

如果要應用更復雜或任意的轉換,則事情會變得更加復雜。 您將要看一下如何計算普通矩陣。 從記憶中,我認為您會需要這個陪審員,這聽起來很有趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM