0

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

我也试过打电话

[cell.textview setNeedsDisplay];

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

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

4

1 回答 1

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 之后。

于 2009-06-01T16:30:01.910 回答