Что такое основанные на блоке методы анимации в iPhone OS 4.0?

Я пытаюсь реализовать игру с помощью iPhone OS 4.0 (iOS4?) SDK. В предыдущих версиях SDK я использовал [UIView beginAnimations:context:] и [UIView commitAnimations] для создания некоторых анимаций. Однако, когда я смотрю на документацию функций в 4,0, я вижу этот комментарий.

Использованию этого метода препятствуют в iPhone OS 4.0 и позже. Необходимо использовать основанные на блоке методы анимации вместо этого.

Можно найти его здесь: http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/clm/UIView/commitAnimations

Мой вопрос, что такое основанные на блоке анимации в iPhone OS 4.0? Я, хотя это beginAnimations:context: и функции commitAnimations использовались для создания блоков анимации..

55
задан Brad Larson 21 March 2011 в 17:52
поделиться

2 ответа

Если вы перейдете по этой ссылке и прокрутите немного вверх, вы увидите методы анимации, новые для ios4.

animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion:

Есть также несколько связанных методов перехода. Для каждого из них аргументом анимации является объект блока :

анимации
Блочный объект, содержащий изменения для фиксации взглядов. Здесь вы программно изменить любые анимированные свойства представления в вашей иерархии представлений. Этот блок не принимает параметров и не имеет возвращаемое значение. Этот параметр не должен быть NULL.

Блочные объекты являются частью Параллельного программирования

42
ответ дан 26 November 2019 в 17:38
поделиться

Я разместил пример в своем блоге:

    CGPoint originalCenter = icon.center;
    [UIView animateWithDuration:2.0
            animations:^{ 
                CGPoint center = icon.center;
                center.y += 60;
                icon.center = center;
            } 
            completion:^(BOOL finished){

                [UIView animateWithDuration:2.0
                        animations:^{ 
                            icon.center = originalCenter;
                        } 
                        completion:^(BOOL finished){
                            ;
                        }];

            }];

Приведенный выше код анимирует UIImageView* (иконку) в 2-секундной анимации. После ее завершения другая анимация переместит иконку в исходное положение.

117
ответ дан 26 November 2019 в 17:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: