我有一个名为Highlight
的菜单项,它调用以下功能。该函数更改所选文本的颜色,并正常工作。但是,我不确定我是否正确地做到了。我担心如果_myTextView
(一个UITextView
)包含大量文字,可能会出现性能问题。
你能看看它并建议一个更好的方法吗?
- (void)highlight {
NSRange selectedRange = _myTextView.selectedRange;
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]
initWithAttributedString:_myTextView.attributedText];
[attributedString addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor]
range:selectedRange];
_myTextView.attributedText = attributedString;
}
答案 0 :(得分:1)
这不会导致性能问题,因为您没有做太重的事情。即使有大量文本,UIKit也能很好地处理这个问题。这就像在设备上添加大量文本和测试一样简单,看看它是如何处理它的。
我建议你开始将你的对象称为self.myObject而不是_myObject。这是因为如果您需要覆盖getter,则必须返回并修复代码以改为使用getter。