我有一个使用以下代码旋转的 UIView:
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 时不旋转。旋转是在另一种方法中完成的,我更愿意保留它,因为我还在那里旋转了一些其他视图。