Как я могу оживить два UIView reisizes одновременно? - PullRequest
0 голосов
/ 28 ноября 2010

Я использую этот код:

   [UIView beginAnimations:nil context:NULL];  
   [UIView setAnimationDelegate:self];
   [UIView setAnimationDidStopSelector:@selector(_shrinkDidEnd:finished:contextInfo:)];
   tblSimpleTable.frame = tableFrame;  
   messegeField.frame = messegeFrame;
   [UIView commitAnimations];

Где messegeFrame и tableFrame - новые фреймы этих представлений. Я надеялся, что это заставит таблицу и поле messege двигаться вместе, но сначала таблица перемещается, и только затем поле messege. Есть ли способ заставить их двигаться вместе?

обратите внимание: дело в том, что они оба меняют размеры, но не в одно и то же время

Ответы [ 2 ]

1 голос
/ 28 ноября 2010

Попробуйте установить таймер для анимации, я переместил десятки просмотров одновременно, и это заметное отсутствие в вашем коде:

[UIView beginAnimations:nil context:NULL];  

[UIView setAnimationDuration:0.3];

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(_shrinkDidEnd:finished:contextInfo:)];
tblSimpleTable.frame = tableFrame;  
messegeField.frame = messegeFrame;
[UIView commitAnimations];

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

0 голосов
/ 28 ноября 2010

В качестве номинала этот код выглядит нормально, и я использовал этот метод для перевода более 1 объекта одновременно.

Если вы просто перемещаете эти 2 объекта, есть альтернативы, которые вы можете попробовать: UIOBJECT.center - хотя это косвенно влияет на кадр.Или излишним с CGAffineTransformTranslate.

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