2009-06-01 2 views
0

У меня есть пользовательский UITableViewCell с UIScrollView в нем, который подключен к контроллеру ячейки. Когда я назначаю текст в scrollview, некоторые ячейки получают правильный текст, некоторые пустые, некоторые перерисовывают старый текст, а другие имеют scrollview, обрезанные вокруг второй или третьей строки текста. Кажется случайным, что произойдет. Я следовал за предложением использовать таймер для исправления пустых ячеек, http://www.bdunagan.com/2008/12/08/uitextview-in-a-uitableview-on-the-iphone/, но это не помогло. Я поместил код таймера в метод cellForRowAtIndexPath.UIScrollView в UITableCellView, ячейка не обновляется

Я также попытался назвать

[cell.textview setNeedsDisplay]; 

после текста присваивается TextView, но это не оказывает никакого влияния.

Когда я использую текстовое поле или ярлык, все выглядит нормально. Однако мне нужно что-то, что можно прокручивать текст. Любые предложения по исправлению или лучшему пути?

ответ

1

Обновление: Нашел на Дев форумах (в частности, упоминает проблему):

https://devforums.apple.com/message/38944#38944

Я бы по ссылке она имеет некоторые более подробную информацию.

// view controller 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    NSArray*  visibleCells = [self.tableView visibleCells]; 

    for (UITableViewCell* cell in visibleCells) 
    { 
      if ([cell.reuseIdentifier isEqualToString:kTextViewCellID]) 
      { 
       [(MTextViewCell*)cell refresh]; 
      } 
    } 
} 

// MTextViewCell 


- (void)refresh 
{ 
    // mucking with the contentOffset causes the textView to redraw itself 
    CGPoint  contentOffset = mTextView.contentOffset; 
    CGPoint  contentOffset1 = { contentOffset.x, contentOffset.y + 1.0f }; 

    mTextView.contentOffset = contentOffset1; 
    mTextView.contentOffset = contentOffset; 
} 

Попробуйте позвонить:

[tableView reloadData]; 

После обновления все TextViews.

+0

textViews обновляются в cellForRowAtIndexPath. Я попытался вызвать [tableView reloadData]; но это не повлияло. – 4thSpace

+0

Прямо перед возвратной ячейкой; Я делаю NSLog (@ "\ nrow =% d textview.text:% @", row, cell.textview.text); и он всегда имеет правильное значение. Но вряд ли когда-либо его отобразит. Обычно ячейки пусты. – 4thSpace

+0

, если вы прокручиваете таблицу, значения обновляются, когда вы прокручиваете? –