我有這個代碼轉動一個UIView:旋轉阿爾法一個UIView = 0
helpView.transform = CGAffineTransformMakeRotation(degreesToRadians(rotationAngle));
哪裏degreeToRadians僅僅是一個宏觀的角度從度轉換爲弧度。
只要視圖是可見的,例如alpha = 1,就可以正常工作。當我隱藏它(alpha = 0,這是我的動畫)時,它不再旋轉。我想這是設備在繪圖時「節省」的一種智能方式,但是有什麼辦法可以強制它在alpha爲0時被繪製?否則,我將不得不旋轉它,然後再次顯示。
任何好主意?
感謝
編輯:這是我用它來顯示/隱藏視圖中的代碼。
-(void)showHelp
{
bool helpAlpha = !helpView.alpha;
CGFloat newScale;
if (helpView.alpha) {
newScale = kHelpSmall;
helpView.transform = CGAffineTransformMakeScale(kHelpBig, kHelpBig);
} else {
newScale = kHelpBig;
helpView.transform = CGAffineTransformMakeScale(kHelpSmall, kHelpSmall);
}
[UIView animateWithDuration:(kAnimationTimeShort/2) animations:^(void) {
[helpView setAlpha:helpAlpha];
helpView.transform = CGAffineTransformMakeScale(newScale, newScale);
}];
}
正如你所看到的,我也將它縮放以獲得更好的效果。可見時工作完美,當alpha = 0時不旋轉。旋轉以另一種方法完成,在那裏我寧願保留它,因爲我還在其中旋轉了一些其他視圖。
嗯...你怎麼能檢測到你的視圖不是繪製時,它的alpha是0?你可以發佈一段代碼,讓你可以看到幫助視圖。 – Zapko 2011-06-01 07:14:34
嗨Zapko,請參閱我的編輯。一旦我顯示它,我可以看到它在隱藏時未被旋轉。 – Structurer 2011-06-01 07:22:03
我相信迪派克對你的問題是正確的。 – Zapko 2011-06-01 07:41:09