[英]UIImageView Rotation Matrix is Performing a Skew
我有一個令人費解的問題。 我有一個UIImageView,向它提供一個以弧度為單位的角度來旋轉函數。 它工作正常,但是我現在想將角度偏移一個常數。 有趣的是,如果我對M_PI的偏移量變量進行任何除法或乘法運算,則圖像視圖將傾斜並且不會旋轉?
- (void)rotateDialToAngle: (CGFloat)angle {
CGFloat offsetAngle = -0.075f * (2.0f * M_PI);
offsetAngle += angle;
if(offsetAngle >= M_PI * 2)
offsetAngle -= M_PI * 2;
if(offsetAngle < 0)
offsetAngle += (M_PI * 2);
self.clockDialImageView.transform = CGAffineTransformMakeRotation(offsetAngle);
}
上面的代碼是預期的狀態。 如果我用M_PI替換offSetAngle計算,則它具有將旋轉偏移180度的預期行為。 如果我將其替換為M_PI / 2或其他任何內容,則將獲得偏斜行為。
if語句用於將度數限制為不大於360的正數。這些按預期方式工作。
注意:這是代碼中唯一對圖像視圖進行任何形式的轉換的函數。
注2:盡管視圖是傾斜的,但旋轉仍然適用。
編輯:代碼中的其他轉換不能解釋問題是如何隔離到一行代碼以及對該行中常量的操作。 編輯:尋找其他轉換-什么都沒有。 CMPopTipView在此控制器外部,不使用。 就像DejalActivityView一樣。
還有其他想法嗎?
好的,我找到了問題,不確定“為什么”,但是解決方案是將圖像視圖繪制模式從“縮放到填充”更改為“居中”
我完全不知道為什么這會影響一個常數偏移一個角度?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.