UITcrollView在UITableCellView中,单元格不更新

时间:2009-06-01 14:04:58

标签: iphone uitableview uiscrollview

我有一个带有UIScrollView的自定义UITableViewCell,它连接到单元控制器。当我将文本分配给滚动视图时,一些单元格获得正确的文本,一些单元格为空白,一些单元格重新显示旧文本,另一些单元格则在第二行或第三行文本周围剪切滚动视图。对于会发生什么似乎是随机的。我按照这里的建议使用计时器来修复空白单元格http://www.bdunagan.com/2008/12/08/uitextview-in-a-uitableview-on-the-iphone/,但这没有帮助。我将计时器代码放在cellForRowAtIndexPath方法中。

我也尝试过调用

[cell.textview setNeedsDisplay];

将文本分配给textview但它没有任何影响。

当我使用文本字段或标签时,一切看起来都很好。但是,我需要一些可以滚动文本的东西。有关修复或更好方法的任何建议吗?

1 个答案:

答案 0 :(得分: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后。