2013-12-16 4 views
0

Это очень странная ошибка. Я попытаюсь объяснить, как лучше всего, как я могу, но я сделал видео, чтобы показать вам (см ниже)UITableView Прокрутка не «текущая» (демонстрация w/видео)

Иногда, когда мы продвигаемся к Tableview на нашем навигационный контроллере, прокрутка действует как например:

Видео проблемы здесь:http://tinypic.com/r/30nkyol/5

  • Flicking не будет работать. Если вы пролистаете вид прокрутки, он не будет продолжать двигаться после щелчка. Как только вы отпустите свой палец, табличное представление остановится там, где оно есть.
  • Табличное представление не отскакивает. Из-за этого вы можете идти выше границ, чем обычно.

Это почти так, как если бы какое-то замедление Rate было чрезвычайно высоким, так что прокрутка просматривается сразу после его касания.

Выход из приложения и перезагрузка устраняет проблему. Кроме того, у нас есть другое представление таблицы на отдельном контроллере представления и переход к тому, что tablieview никогда не было проблемой.

Мне интересно, если вы когда-либо видели эту проблему? Или это феномен iOS?

Наша cellforrowatindexpath:

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    SPMark* mark = self.datasource[indexPath.section]; 
    NSString* reuseId = [SPHomeViewController cellIdentifierFromData:mark]; 
    SPTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseId]; 
    if (cell == nil) { 
     cell = [SPTableViewCell cellFromMark:mark reuseID:reuseId]; 
     [cell updateView:NO]; 
    } 
    [cell addDataToCell:mark]; 

    if (indexPath.section >= self.datasource.count - 2 && !self.isLoadingData && self.pageNumber != -1) 
     self.fetchNextPage = YES; 

    NSLog(@"SUBVIEWS: %d", self.view.subviews.count); 

    return cell; 
} 
+0

Необходимо использовать общий код. Без этого мы можем только догадываться. Покажите части кода, которые, по вашему мнению, релевантны. Если потребуется больше, кто-то спросит. – CaptJak

ответ

0

Вы обработки изображений в

- (void)prepareForReuse 

на вашем UITableViewCell

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

Это довольно распространенная проблема в TableViews, однако так что посмотрите here и here на несколько советов по улучшению прокрутки таблицыView.

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

+0

Я добавил нашу cellForRowAtIndexPath. Как вы думаете? – evenodd

+0

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

+0

http://pastebin.com/YG2e4GZ4 – evenodd

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