2013-11-06 3 views
0

У меня есть набор из трех UITableViews в UIView, расположенных горизонтально, два из которых видны на экране в любой момент времени, а другой - за пределами экрана. Я пытаюсь анимировать изменение позиции, где при нажатии кнопки крайний левый стол скользит по экрану влево, а затем два других переключаются, чтобы заполнить позиции.анимация UIView при нажатии кнопки - не видна с первой попытки

Проблема заключается в том, что если я попытаюсь анимировать более чем одну из таблиц сразу, ничего не произойдет при первой нажатии кнопки. Но во второй прессе все работает нормально. Если я попытаюсь оживить только одну таблицу, то она работает при первом нажатии. Мой код кнопки обработчик ниже:

- (IBAction)buttonPressed:(id)sender{ 

    CGRect newUITableView1Frame = self.originalUITableView1Frame; 
    newUITableView1Frame.origin.x = newUITableView1Frame.origin.x - newUITableView1Frame.size.width;  

    if(!makeSubButtonPressed){ 
     self.makeSubButtonPressed = YES; 
     [self.makeSubButton setTitle:@"Choose Team Lineup" forState:UIControlStateNormal]; 

     [UIView animateWithDuration:0.5 
           delay:0.1 
          options:UIViewAnimationOptionCurveEaseOut 
         animations:^{ 
          self.UITableView1.frame = newUITableView1Frame; 
          self.UITableView2.frame = originalUITableView1Frame; 
          self.UITableView3.frame = originalUITableView2Frame; 
         } 
     completion:^(BOOL finished){NSLog(@"Animation Finished");}]; 
} 

В методе ViewDidLoad:

self.originalUITableView1Frame = self.UITableView1.frame; 
self.originalUITableView2Frame = self.UITableView2.frame; 

На первой пресс, «Анимация Закончено» всегда печатается в консоли, так что код выполняется. Я также пробовал отдельные анимационные блоки для каждой анимации, но результат тот же.

Я не могу понять, что происходит. Какие-либо предложения?

EDIT: Возможно, я должен добавить, что я использую раскадровки для этого, и все UITableViews добавлены там.

ответ

1

Вы устанавливаете кадр для второй таблицы дважды в блоке анимации, но вы не устанавливаете кадр для третьей таблицы.

Попробуйте это в блоке анимации:

self.UITableView1.frame = newUITableView1Frame; 
self.UITableView2.frame = originalUITableView1Frame; 
self.UITableView3.frame = originalUITableView2Frame; 
+0

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

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