Анимация для UIViews с фоновыми изображениями? - PullRequest
1 голос
/ 17 июля 2009

У меня проблема с UIView, которая при использовании сплошного цвета для фона отлично анимирует.

Однако, когда я вместо этого устанавливаю фоновое изображение для его цвета, анимация UIView не работает должным образом. Он выглядит как призрачный контур страницы, но сам UIView прозрачен на 100% (если это имеет смысл).

Цвет фона изображения заранее устанавливается следующим образом (что приводит к неэффективности анимации):

UIImage *loadedImage = [UIImage imageNamed:@"MyTexture.png"];
UIColor *tempColour = [[UIColor alloc] initWithPatternImage:loadedImage];
[myUIView setBackgroundColor:tempColour];
[tempColour release];

Однако, если установить цвет фона сплошным, анимация будет работать нормально:

[myUIView setBackgroundColor:[UIColor blackColor]];

Используемая анимация:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];      
[UIView setAnimationTransition:UIViewAnimationCurveLinear forView:myUIView cache:YES];
[myUIView setHidden:YES];
[UIView commitAnimations];

1 Ответ

1 голос
/ 04 августа 2009

По моему опыту, самый надежный способ заставить изображение работать в качестве фона в приложениях для iphone - это использовать отдельный UIImageView, для которого вы устанавливаете фоновое изображение. Затем вы можете установить UIImageView как представление нижнего уровня и поместить другие виды поверх него.

В представлениях, которые вы помещаете поверх него, вы устанавливаете backgroundColor на [UIColor clearColor], и это дает вам то, что вы пытаетесь сделать здесь.

Я успешно использовал это в нескольких приложениях, и это намного надежнее, чем установка изображения непосредственно на фоне UIView (что я и раньше пробовал).

Надеюсь, это поможет.

...