2013-07-10 2 views
0

У меня есть UIViewController, держащий UITableView, растянутый на всей его площади. При нажатии кнопки «Я» я пытаюсь сжимать и перемещать и сжимать UITableView, чтобы сделать пространство для UIView, которое движется вниз от верхней части экрана.Перемещение UiTableView с анимацией

Я придаю тебя проецировать project

мне удается переместить красный вид просто отлично, но проблемы с перемещение и изменение размеров UITableView stimulatenously.

Вот мои анимации, которые вызывают проблемы.

-(void)extendTableView 
{ 
    if (searchPanel) {   
     objectsTableView.frame = CGRectMake(objectsTableView.frame.origin.x, 0, objectsTableView.frame.size.width, 100); 
     CATransition *animation = [CATransition animation]; 
     [animation setDuration:0.5]; 
     [animation setType:kCATransitionPush]; 
     [animation setSubtype:kCATransitionFromTop]; 
     [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
     [animation setDelegate: self]; 
     [animation setValue:ANIMATION_EXTEND_TABLE_VIEW forKey:KEY_ANIMATION]; 
     [objectsTableView.layer addAnimation:animation forKey:ANIMATION_EXTEND_TABLE_VIEW]; 

    } 

-(void)shrinkTableView 
{ 
    if (searchPanel) { 
     objectsTableView.frame = CGRectMake(objectsTableView.frame.origin.x, 100, objectsTableView.frame.size.width, 100); 
     CATransition *animation = [CATransition animation]; 
     [animation setDuration:0.5]; 
     [animation setType:kCATransitionPush]; 
     [animation setSubtype:kCATransitionFromBottom]; 
     [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
     [animation setDelegate: self]; 
     [animation setValue:ANIMATION_SHRINK_TABLE_VIEW forKey:KEY_ANIMATION]; 
     [objectsTableView.layer addAnimation:animation forKey:ANIMATION_SHRINK_TABLE_VIEW]; 
    } 
} 

Что было бы правильным способом достичь этого?

+0

Какие проблемы у вас есть при перемещении и изменении размера UITableView? – LuisCien

+0

Таблица изменяет размеры до нежелательных мер. Если я модифицирую фрейм, так что меры прекрасны, анимация странная –

ответ

2

Это отлично работает

-(void)extendTableView 
    { 
     if (searchPanel) { 
      CGRect screenRect = [[UIScreen mainScreen] bounds]; 
      [UIView beginAnimations:nil context:nil]; 
      [UIView setAnimationDuration:0.5]; 
      objectsTableView.frame = CGRectMake(0, 0, screenRect.size.width, screenRect.size.height); 
      [UIView commitAnimations]; 
     } 

    } 

-(void)shrinkTableView 
{ 
    if (searchPanel) { 
     CGRect screenRect = [[UIScreen mainScreen] bounds]; 
     [UIView beginAnimations:nil context:nil]; 
     [UIView setAnimationDuration:0.5]; 
     objectsTableView.frame = CGRectMake(0, 100, screenRect.size.width, screenRect.size.height -100); 
     [UIView commitAnimations]; 
    } 
} 
Смежные вопросы