2010-10-26 61 views

回答

2

我爲此使用了CoreText。

計算抽頭偏移是有點棘手,因爲我總是忘記翻轉座標系,但我最終得到了它,這裏是你如何能做到這一點的簡要概述:

  1. 創建文本作爲NSMutableAttributedString(因爲您將不得不在某些時候修改它)。
  2. 掃描您想要添加鏈接的文本,插入兩個屬性:1)文本顏色,例如藍色;和2)自定義鏈接屬性(將其命名爲任何你喜歡的東西,使其價值成爲你想要去的鏈接)
  3. 呈現文本在你的drawRect:。您需要創建一個CTFramesetterRef和一個CTFrameRef(後者需要保留。另請注意,創建framesetter是一個昂貴的過程,只需執行一次即可(如果可能,則不在此範圍內)。
  4. 在您的觸摸處理代碼中,正如我前面提到的那樣,您需要補償不同的座標系。從那裏開始,假設你知道你的文本在哪裏使用它的座標系統,那麼你可以找出文本的位置,然後可以在你的觸摸處理程序中截取該文本,如果某個特定的CTRunRef屬性包含你的自定義鏈接屬性。如果是這樣,只需獲取屬性,然後將其傳遞給任何 - 通常這就是您要使用委託的地方。

這就是關鍵所在。

+0

請舉例嗎? – stefanosn 2012-11-02 02:25:40

相關問題