我有包含 UITextView 的自定义 UITableViewCells。我在 Interface Builder 中打开了 UITextView 中的链接检测。当我第一次加载表格视图时,一切似乎都在工作,但是当我上下滚动表格视图时,链接检测变得一团糟。具体来说,只有常规文本(最初正常显示)的单元格显示为链接(文本视图中的所有文本都显示为蓝色,并且是活动链接),并且链接指向某些其他表格视图单元格。例如,链接可能指向位于不同表格视图单元格中的网站,或者向位于不同表格视图单元格中的地址发送电子邮件。
似乎当表格视图单元被重用时,即使文本视图文本正在更新,链接也会以某种方式被保存。
这只发生在 iOS 7 中,而不是 iOS 6。它发生在模拟器和我的设备上。
这是代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *sectionKey = [self.orderedSectionKeys objectAtIndex:indexPath.section];
NSDictionary *infoDictionary = [[self.tableViewData objectForKey:sectionKey] objectAtIndex:indexPath.row];
static NSString *cellIdentifier = @"InfoDefaultTableViewCell";
InfoDefaultTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"InfoTableViewCells" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}
cell.bodyTextView.text = [infoDictionary objectForKey:@"description"];
return cell;
}
有谁知道这里发生了什么,以及如何解决?
我尝试在设置文本视图文本后添加此代码,以尝试重置链接:
cell.bodyTextView.dataDetectorTypes = UIDataDetectorTypeNone;
cell.bodyTextView.dataDetectorTypes = UIDataDetectorTypeAddress | UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber;
但这并没有改变我所看到的行为。