IOS: анимация с UIImageView - PullRequest
       3

IOS: анимация с UIImageView

0 голосов
/ 10 ноября 2011

У меня есть два imageViews, которые я называю firstView и secondView;Я должен сделать анимацию, которая перемещает третий imageView, который я называю imageView3.Этот imageView3 находится внутри firstView, и я делаю этот код

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[imageView3 setFrame:frameinSecondView];
[UIView commitAnimations];
//[imageView3 removeFromSuperview];
//[secondView addSubview:imageView3];

с этим кодом, я могу переместить imageView3 во secondView, но проблема в том, что я не могу установить imageView3 в правильном фрейме "frameinSeconView";вместо этого, если я использую закомментированный код

[imageToMove removeFromSuperview];
[scrollViewAlfabeto addSubview:imageToMove];

imageView3, перейдите к правильному кадру, но я не вижу анимацию, потому что, когда она запускает свою анимацию, imageview3 исчезает из firstView, а реклама появляется при переходе на secondView * 1007.*

Как решить, чтобы получить правильную анимацию с правильным кадром между этими двумя изображениями.

1 Ответ

1 голос
/ 10 ноября 2011

Вы пытаетесь передать imageView3 от 1 до 2, верно? Удалите его из imageView1 и поместите его в windowView, выполните анимацию от 1 до 2 и ждите , чтобы завершить анимацию, чтобы удалить из windowView и вставить в imageView2

как ждать ? ... ну, есть структура [предложение чего-то], которая делает это, но я не знаю, как это, вместо этого (потому что я так и не нашел, как) я начал использовать "блоки анимации": D

Что такое блок анимации? блок: объект, который означает действие; ниже приведен пример анимации с использованием блочных объектов block1, block2 (CODE PARTC)

    [UIView animateWithDuration:2 delay:0 
                    options:UIViewAnimationCurveEaseIn 
                 animations: block1
                 completion: block2
    ];

Это означает, что он будет выполнять действия, определенные в block1, как если бы они были внутри предложений анимации begin-commit, и (красивая часть) после его ЗАВЕРШЕНИЯ они будут выполнять действия в block2! : D

но что такое блок f ---- ng ?; Что ж... ЭТО F ---- NG БЛОК!:

Блок, который возвращает void (CODE PARTA):

    void (^block1)(void) = ^{
    centerPortrait.frame = frame1;
    if (lookingMenu==NO)
        listTableView.frame = frameT1;
    };

Блок, который возвращает BOOL (после завершения: вам нужен bool) и внутри которого есть другая анимация (CODE PARTB)

    void (^block2)(BOOL) = ^(BOOL got){
    [UIView animateWithDuration:halfDuration delay:0 
                        options:UIViewAnimationCurveEaseIn 
                     animations:^{
                         centerPortrait.image = image;
                         centerPortrait.frame = frame2;
                         if (lookingMenu==YES)
                             listTableView.frame = frameT2;
                     } 
                     completion:nil
     ];
    };

Я использовал это, чтобы сделать фальшивое вращение изображения hohohoho В любом случае, если у вас его нет, заказ будет PARTA, B, C: P

Прочитайте это: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html%23//apple_ref/doc/uid/TP40007502-CH7-SW1

- вот где я узнал, как использовать блоки: D, и вот полезный урок великого RAYWENDERLICH: http://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorial

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...