У меня есть пользовательский UITableViewCells, содержащий UITextView. У меня обнаружение ссылок в UITextView включено в Interface Builder. Когда я впервые загружаю табличный вид, все работает, но когда я просматриваю вверх и вниз по представлению таблицы, обнаружение ссылок становится беспорядочным. В частности, ячейки, которые имеют обычный текст (которые представлены обычно изначально), отображаются как ссылки (весь текст в текстовом представлении окрашен в синий цвет и является активной ссылкой), а ссылки указывают на объекты, которые находятся в некоторых другие ячейки таблицы. Например, ссылка может указывать на веб-сайт, который находился в другой ячейке представления таблицы, или запустить электронное письмо по адресу, который находился в другой ячейке представления таблицы.
Похоже, что когда ячейки табличного представления повторно используются, хотя текст текстового вида обновляется, ссылки каким-то образом сохраняются.
Это происходит только в 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;
}
Кто-нибудь знает, что здесь происходит, и как его решить?
Я попытался добавить этот код после установки текстового текста, чтобы попытаться reset ссылки:
cell.bodyTextView.dataDetectorTypes = UIDataDetectorTypeNone;
cell.bodyTextView.dataDetectorTypes = UIDataDetectorTypeAddress | UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber;
но это не изменило поведение, которое я вижу.