2013-06-06 2 views
0

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

У меня все это работает, однако, когда я запускаю это на своем iPhone 5 при запуске анимации contentOffset, он вызывает движение дрожания, в котором ячейки выглядят так, как будто они идут вверх и вниз, а затем начинают прокручивать содержимое с экрана , Он отлично выглядит в симуляторе. Почему это происходит? Должен ли я использовать UIScrollView и добавлять subviews вместо UITableView?

Вот код, я использую:

CGPoint bottomOffset = CGPointMake(0, -self.tableView.contentSize.height); 
[self.tableView setContentOffset:bottomOffset animated:YES]; 

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

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

Кто-нибудь сделал это раньше, что я делаю неправильно здесь? Эффект, который я пытаюсь подражать, - это приложение под названием WillCall (https://www.getwillcall.com/), когда вы нажимаете на кнопку и из деталей исполнителя, вы увидите этот эффект прокрутки.

ответ

0

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

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