Как анимировать КОНЧИК, чтобы он входил в экран с правой стороны

#iphone #objective-c #cocoa-touch #uiviewanimation

#iPhone #objective-c #cocoa-touch #uiviewanimation

Вопрос:

Я думаю, это довольно просто, но мне было интересно, есть ли простой способ анимировать весь кончик на экране… идет справа. В идеале, я бы хотел, чтобы он немного подпрыгивал, когда останавливается (т. Е. Если предполагается, что кончик прокручивается до положения X = 0, я бы хотел, чтобы оно было немного отрицательным, прежде чем возвращаться к 0).

Это то, что у меня есть на данный момент:

                          [UIView animateWithDuration:0.5
                                           delay:0
                                         options:UIViewAnimationOptionCurveEaseIn
                                      animations:^{


                                          TabsEdit *tEdit = [[TabsEdit alloc] initWithNibName:@"TabsEdit" bundle:nil];
                                          self.tabsEdit = tEdit;
                                          [self.view addSubview:tEdit.view];
                                          [tEdit release];



                                      }
                                      completion:^(BOOL finished){

                                      }
  

Есть ли какое-нибудь простое решение или мне нужно будет анимировать каждый отдельный элемент кончика, чтобы он был виден, а затем добавить к нему свой небольшой эффект отскока?

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

Ответ №1:

Чтобы получить более сложную анимацию (если вы хотите, чтобы в букете было больше сегментов), вам следует перейти на уровень CoreAnimation и определить ключевые кадры. У других есть серия встроенных animateWithDuration / Completions, каждый из которых выполняет свою часть отскока). Если все элементы представления являются вложенными представлениями, то при анимации представления за ними последуют его вложенные представления.

Комментарии:

1. Спасибо. Как я делал с КОНЧИКОМ в IB, я предполагаю, что все элементы являются подвидами представления. Но как я получу самую базовую анимацию, скажем, перемещения КОНЧИКА из X = 320 в X = 0? Извините, если это элементарно, но я попробовал tabsEdit.transform = CGAffineTransformMakeTranslation(-320, 0); и это действительно не сработало.

2. внутри вашего анимационного блока просто установите рамку в то место, в котором вы хотите, чтобы она заканчивалась в конце анимации: view.frame = CGRectMake(0.0f, view.frame.origin.x, .view.frame.size.width, view.frame.size.height); пример ниже… не отскакивает всего на одно движение

Ответ №2:

повторите одно движение, чтобы подпрыгнуть.

     [UIView beginAnimations:@"move" context:nil];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationDuration:0.25];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    if(movingIn){
        view.frame = CGRectMake(0.0f, view.frame.origin.x, .view.frame.size.width, view.frame.size.height);
    }else{
        view.frame = CGRectMake(320.0f, view.frame.origin.x, .view.frame.size.width, view.frame.size.height);
    }

    [UIView commitAnimations];