1

我有一个名为的菜单项Highlight,它调用以下函数。该功能更改所选文本的颜色并且工作正常。但是,我不确定我做得是否正确。我担心如果_myTextView(an 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;

}
4

1 回答 1

1

这不应该导致性能问题,因为你没有做任何太重的事情。即使有大量文本,UIKit 也能很好地处理这个问题。这就像添加大量文本并在设备上进行测试以查看其处理方式一样简单。

我建议您开始将您的对象称为 self.myObject 而不是 _myObject。这是因为如果您需要覆盖 getter,则必须返回并修复代码以改用 getter。

于 2013-10-19T12:59:37.170 回答