簡體   English   中英

核心文本 - 從NSRange獲取像素坐標

[英]Core Text - Get Pixel Coordinates from NSRange

我將如何得到CGRectNSRange與核心文本呈現的文本?

我正在使用帶有NSAttributedString Core Text。

這是一種絕對的痛苦,但可以做到。

你需要讓所有的幀使用線CTFrameGetLines()檢查他們的字符范圍是你要找的使用范圍CTLineGetStringRange()使用CTLineGetTypographicBounds()找到多大的線本身就呈現為,並使用CTLineGetOffsetForStringIndex()來確定范圍的開始/結束字符的實際位置(如果該行只是所需范圍的子范圍)。

結合所有這些並添加偏移和高度等可以得到你想要的。 請注意, CTLineGetImageBounds()在沒有圖形上下文的情況下不起作用(而且,從我收集的內容來看,它無論如何都非常昂貴)並且不一定要解決這個問題。

首先確定您感興趣的范圍所在的線。 然后調用CTLineGetOffsetForStringIndex()以從行的開頭獲取特定字符串位置的偏移量。 CTLineGetImageBounds()一起,應該可以計算范圍中第一個和最后一個字符的CGPoint位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM