2015-01-19 2 views
0

У меня есть меню пользовательской сборки, которое выталкивает или всплывает. например, меню1 подталкивает представление. если нажимается меню2, удаляется предыдущий вид и отображается другое представление. анимированные нажатия и выскакивание. как серийно обновлять/push/pop просмотров с анимацией? он не должен игнорировать любой выбор менюОбновление пользовательского интерфейса с анимацией синхронно или в последовательной очереди

Я использовал dispatch_queue_t и NSOperationQueue безрезультатно, как если бы он игнорировал анимацию uiview. self.uiOperationQueue имеет 1 как максимальную параллельную операцию.

[self.uiOperationQueue addOperationWithBlock:^{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
      [self updateViewsForSelection:menuType]; 
    }); 
}]; 

с очереди отправки:

self.uiUpdateQueue = dispatch_queue_create("ui-updateQueue", NULL); 
dispatch_async(self.uiUpdateQueue, ^{ 
     [self updateViewsForSelection:menuType]; 
}); 

поэтому в основном [self updateViewsForSelection:menuType] вызывается с различным меню и UIView анимации с длительностью. Что я делаю не так?

ответ

0

Его можно добавить animation blocks в массив и выполнить их одну за другой, используя completion block

-(void)executeAnimationsInArray:(NSArray *)array atIndex:(int)index 
{ 
    [UIView animateWithDuration:1 animations:array[index] completion:^(BOOL finished) { 
     if (index < array.count - 1) 
     { 
      [self executeAnimationsInArray:array atIndex:index+1]; 
     } 
    }]; 

} 

Он может быть использован как

id block1 = ^(void) { 
    imgView.frame = CGRectOffset(imgView.frame, 10, 10); 
}; 
id block2 = ^(void) { 
    imgView.frame = CGRectOffset(imgView.frame, -10, -10); 
}; 

[self executeAnimationsInArray:@[block1, block2] atIndex:0]; 
+0

в настоящее время я собираю прессованного событие кнопки меню в массив и выполнение по одному после блока завершения анимации. все еще я не могу решить проблему. Я думаю, что я не пойду в правильном направлении. –

+0

Какая проблема вы сейчас получаете? – rakeshbs

+0

еще я сломал взгляды. Я использую ограничения для представлений, и там он говорит, что не может разбираться, потому что в представлении нет супервизора. Я в настоящее время отлаживаю. Я предоставлю дополнительную информацию. –

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