我有一個類,它的工作是將文本解析爲多個頁面。 我使用sizeWithFont:方法來識別一個頁面何時結束,另一個開始。 但不幸的是,由於需要解析的文本量非常大,整個操作需要在後臺線程上執行(需要幾秒鐘才能完成)。因此,有時我的界面上會出現視覺工件(UIKit不是線程安全的,但我可以同時從多個線程中調用它),我很想擺脫它。sizeWithFont的替代方法:方法
我需要擺脫使用sizeWithFont:在後臺線程。但是,這似乎不是這種方法的替代方法。找出與核芯顯卡文本的寬度的唯一方法是使用蘋果的文檔中所述方法:
- 調用函數CGContextGetTextPosition獲取當前文本位置。
- 使用函數CGContextSetTextDrawingMode將文本繪製模式設置爲kCGTextInvisible。
- 通過調用函數CGContextShowText在當前文本位置繪製文本來繪製文本。
- 通過調用函數CGContextGetTextPosition來確定最終的文本位置。
- 從結束位置減去起始位置以確定文本的寬度。
但我真的很擔心,這將導致巨大的性能損失。
任何人都知道另一種查找文本寬度的方法嗎?