我正在使用UITextView,根据用户操作的过程显示不同的文本。有些文本包含超链接,有些没有,所以我想保留UITextView的默认设置来检测链接。但是,一旦我切换回没有超链接的文本,整个文本字段将转换为来自前一文本的某些链接的超链接。它完全是蓝色的,如果用户点击它,应用程序会打开Safari以转到不再存在的链接。我已经尝试将文本设置为nil,然后替换为真正的替换文本,但这没有用:
infoLabel.text = nil;
没有这个
infoLabel.text = @"";
此外,我在更改文本时尝试在UILabel上显式设置dataDetector类型属性,但即使我已将其设置为其他颜色,文本颜色仍为黑色。因此,如果我这样做,每次重置数据检测器类型属性时都必须重置文本颜色。相当令人沮丧。这感觉就像一个bug。我错过了什么?
答案 0 :(得分:0)
您是否使用UITextView
和UITableView
内的dequeueReusableCellWithIdentifier:
?然后你可能会得到一个“旧的”UITextView,你需要设置“恢复默认值”。设置infoLabel.textColor
和infoLabel.font
为我工作:
[infoLabel setFont:[UIFont preferredFontForTextStyle:UIFontTextStyleBody]];
[infoLabel.textColor = [UIColor whiteColor];
答案 1 :(得分:0)
从上一个答案UITextViews in a UITableView link detection bug in iOS 7开始,这似乎是ios 7中的一个错误。那里的解决方案对我不起作用,但对我有用的是创建一个新的UITextView
对于每组文本,因为第一组文本总是很好。如果某人有原因(除了bug)之所以可能发生这种情况,我很想知道,因为我仍然无法在没有此错误的情况下更新或重置UITextView
。