我有一个带有UIScrollView的自定义UITableViewCell,它连接到单元控制器。当我将文本分配给滚动视图时,一些单元格获得正确的文本,一些单元格为空白,一些单元格重新显示旧文本,另一些单元格则在第二行或第三行文本周围剪切滚动视图。对于会发生什么似乎是随机的。我按照这里的建议使用计时器来修复空白单元格http://www.bdunagan.com/2008/12/08/uitextview-in-a-uitableview-on-the-iphone/,但这没有帮助。我将计时器代码放在cellForRowAtIndexPath方法中。
我也尝试过调用
[cell.textview setNeedsDisplay];
将文本分配给textview但它没有任何影响。
当我使用文本字段或标签时,一切看起来都很好。但是,我需要一些可以滚动文本的东西。有关修复或更好方法的任何建议吗?
答案 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后。