Протекает анимация UIView

В моем контроллере просмотра я использую анимацию для изменения рамки UIButton и UIView, переходя от портретного к ландшафтному, пользователь может видеть рост просмотров, но проблема в том, что анимация просачивается повсюду и показывает все, что происходит с разных сторон.

Вот код

[UIView beginAnimations:Nil context:Nil];
[UIView setanimationDuration:1];
[view1 setFrame:CGRectMake(100,100,200,300)];
[UIView commitAnimations];

Спасибо


person Paragon    schedule 13.08.2012    source источник


Ответы (1)


Пожалуйста, уточните, что означает «утечка повсюду», и имеет ли это значение, если вы используете блочную анимацию:

[UIView animateWithDuration:1.0 delay:0.0 options:nil animations:^{
    [view1 setFrame:CGRectMake(100,100,200,300)];
}completion:^(BOOL done){
    if (done) {
        NSLog(@"animation complete");
    }
}];

Согласно документации Apple:

В iOS 4 и более поздних версиях используйте блочные методы анимации. (Рекомендуемые)

person Mick MacCallum    schedule 13.08.2012
comment
я попробовал блок, но все равно это не решило проблему, утечка везде означает, что если я покажу UIAlertView, он исходит из разных углов, и вы видите анимацию при загрузке другого UIView. - person Paragon; 13.08.2012
comment
@Saleem Интересно, можете ли вы предоставить мне больше информации о контексте, в котором вызывается приведенный выше код? - person Mick MacCallum; 13.08.2012
comment
спасибо за быстрый ответ, я вызываю это в willAnimateRotationToInterfaceOrientation. я проверяю ориентацию и соответственно меняю рамку UIViews. - person Paragon; 13.08.2012
comment
Это приложение для iPad, и проблема в том, что у меня есть UIView и UIButton одинакового размера, и когда вы меняете ориентацию, я меняю ширину обоих, но UIView перемещается быстрее, чем UIButton, поэтому вы видите небольшой разрыв между обоими, например, 0,1 секунды. поэтому я применил анимацию, они могут двигаться вместе, когда я меняю кадр в альбомной ориентации, он работал нормально, но когда я выбираю другую строку в masterView, он снова показывает анимацию, в которой вид и кнопка лежат. В любом случае, я могу перемещать их вместе, не используя анимацию. если я не использую анимацию, ширина кнопки перемещается быстрее, чем uiview. - person Paragon; 13.08.2012