У меня есть UIView, который я вращаю с этим кодом:
helpView.transform = CGAffineTransformMakeRotation(degreesToRadians( rotationAngle ));
Где степеньToRadians - это макрос для преобразования из градусов в радианы.
Это работает нормально, пока вид видим, например, alpha = 1. Когда я скрываю его (alpha = 0, который я анимирую), он больше не вращается. Я предполагаю, что это разумный способ для устройств "сэкономить" на времени рисования, но есть ли способ заставить его рисовать, даже когда альфа равен 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);
}];
}
Как вы видите, я также масштабирую его для лучшего эффекта. Прекрасно работает, когда видим, не вращается, когда альфа = 0. Вращение выполняется другим методом, где я бы предпочел сохранить его, так как я также вращаю некоторые другие виды там.