2010-08-29 3 views
3

Следующая оживляет вид на верхней левой части экрана (Ipad):iphone - живой взгляд на новую ширину и высоту

[UIView beginAnimations:@"anim" context:nil]; 
[UIView setAnimationDuration:5]; 
[UIView setAnimationDelegate:self]; 
    someView.frame = CGRectMake(0, 0, 1024, 768); 
[UIView commitAnimations]; 

Однако, это не изменять размеры зрения (думать о UIImageView, который я хочу взорвать). Я предполагаю, что я должен сделать это с помощью преобразования так или иначе, но все, что я могу понять, как сделать это масштаб, поворот и перевод (CGAffineTransformMakeRotation, CGAffineTransformMakeScale, CGAffineTransformMakeTranslation)

Как превратить вид на конкретный прямоугольник? Я не хочу просто масштабирования. Мне нужно растянуть его до 1024x768, независимо от интимного размера.

ответ

0

Каждый UIView содержит CoreAnimation объект (CALayer), который используется для явного анимации:

избавиться от всех и т.д. звонков в -beginAnimations и просто использовать это:

someView.layer.bounds = CGRectMake(0, 0, 1024, 768); 
+0

Спасибо за предложение. Я получаю это, хотя: Ошибка: доступ к неизвестным компонентам 'bounds' свойства – sol

+0

[someView.layer setBounds: CGRectMake (0, 0, 1024, 768)]; Все еще перемещает его вверх влево. Не взорвать его :( – sol

0

Что есть ли в вашем представлении contentMode? Вы должны попытаться установить его на это:

someView.contentMode = UIViewContentModeScaleToFill; 

Редактировать: убедитесь, что вы делаете это перед блоком анимации. Вы должны установить его в Interface Builder или в методе загрузки вида: loadView или viewDidLoad.

Смежные вопросы