Изменение размера фонового изображения при анимации UIView - PullRequest
0 голосов
/ 11 июня 2010

У меня есть UIView в середине вида, который я использую в качестве игровой зоны (в виде 2d какао). Это изображение имеет фоновое изображение того же размера, что и вид. Изменение размера представления Я использую анимацию, чтобы она выглядела гладко (и это прекрасно работает). Однако, когда анимация начинается, фоновое изображение немедленно меняет размер, мозаику или обрезается до размера, который, когда анимация заканчивается, фоновое изображение имеет физически тот же размер.

Я не хочу этого, я хочу, чтобы изображение всегда соответствовало виду, независимо от размера вида.

    UIImage *bgImage = [UIImage imageNamed:@"head.png"];
... // resize the image returning another image
self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:resizedImage];
[UIView beginAnimations:@"resizeView" context:nil];
[UIView setAnimationDuration:.5];
int localViewSize = ... // work out view sizes
self.view.frame = CGRectMake(... ,localViewSize,localViewSize); 
[UIView commitAnimations];

Это выглядит очень странно, когда он скачет к другому размеру, а затем оживит до исходного размера.

Я предполагаю, что, возможно, мне придется сделать отдельный вид под моим основным видом, но это единственный способ?

1 Ответ

1 голос
/ 11 июня 2010

Я подозреваю, что "изображение шаблона" отображается для содержимого слоя (фактически, текстуры), а содержимое слоя растягивается, чтобы соответствовать.Самый простой способ обойти это - установить self.contentMode = UIViewContentModeCenter или около того;имейте в виду, что это работает, когда ваше представление увеличивается, но, вероятно, будет отображать пустую границу, когда ваше представление сокращено.

...