2013-10-19 116 views
1

我有一個菜單項Highlight,它調用下面的函數。該功能改變所選文字的顏色並正常工作。不過,我不確定我是否正確地做了。我擔心如果_myTextView(一個UITextView)有大量文本可能會發生性能問題。在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; 

} 

回答

1

這不應該導致性能問題,因爲你沒有做太重的事情。即使有大量的文字,UIKit也能很好地處理這個問題。這很簡單,只需在設備上添加大量文本和測試以查看它如何處理它。

我會建議你開始引用你的對象作爲self.myObject而不是_myObject。這是因爲如果您需要重寫getter,則必須返回並修復代碼以使用getter。