我正在研究iPhone的實時語法熒光筆,並且創建了一個自定義的UIView,它接受一個字符串,解析它,然後在其drawRect:方法中突出顯示它。我也實現了一個閃爍的光標。但是,它開始有點慢,我認爲當我實現多線處理和塊處理時,它會減慢速度。但是,我嘗試將[formattedTextView setNeedsDisplayInRect:]
調用放在我的視圖控制器中的一個函數中,然後使用[self performSelectorInBackground:@selector(updateDisplay) withObject:nil]
調用單獨的線程。現在鍵盤的響應速度更快,但這似乎是單核處理器上線程的糟糕用法。多線程文本處理的成本/收益
做這樣的事情有沒有問題?
感謝
我最終刪除了後臺處理,因爲如果連續快速輸入很多字符會導致延遲。 至於你的其他要點: - 我正在應用正則表達式到當前可編輯的行。 - 我只通過調用setNeedsDisplayInRect更新當前行:,UIView的其餘部分保持着色。 在我看來,減速的主要原因是閃爍的光標(在awakeFromNib中設置CABasicAnimation的CALayer)有什麼方法來優化這個動畫? 另外,什麼是ast?我以前沒有聽說過,我正在使用NSMutableArray。 – Kyle 2009-05-03 17:33:20