2013-07-10 65 views
1

我有一個UITextView和一些文本。此文本是一個歸因字符串(NSAttributedString)。文字的某些部分已設置爲粗體,並且只想將這些文字加上TapGestureRecogniser。直到現在,我一直在使用UITextView代表的textViewDidChangeSelection方法。但是這導致了項目其他部分的問題。在UITextView的特定單詞上添加點擊手勢識別器

有沒有更直接的方法呢?

+0

可能是你可以參考這個http://stackoverflow.com/questions/15034652/tap-gesture-to-part-of-a-uitextview – HRM

回答

2

您只能將GestureRecognizer添加到視圖中,而不是某些詞語。 這是一個相當複雜的任務,沒有簡單的解決方案。

我能想到的一些方法,例如:

  • 放在大膽的話上面的透明的視圖來獲取點擊。
  • 檢測所有UITextView中的Tap,然後根據觸摸的位置和粗體字的位置(如果它碰到一個)來計算。

這兩個選項都需要很多代碼和很多可能會失敗的邊緣情況。

正如我所說,這是一個非常複雜的情況,您可能希望繼續使用textViewDidChangeSelection並修復問題,我們可以幫助您。

+0

如果文本是靜態的。但事實並非如此。它是用戶可編輯的,可以通過其他視圖添加。 – n00bProgrammer

+0

所以第二個選項,然後,你需要計算使用字體的字符串的大小,以嘗試找出位置,使用sizeWithFont: –

+0

我有一個UITextView,它需要從用戶輸入,也是tableviews(單元格)。所選單元格的內容被附加到字符串(或替換先前的選擇),在textview中。該字符串然後變成一個NSAttributedString。 我想要實現的是,當用戶點擊(從表中選擇的)單詞時,表格應該重新顯示,因此用戶可以改變他們的選擇。 類似於Facebook iOS應用的狀態更新視圖。如果用戶點擊標記的朋友或位置,則在文本視圖中按相應視圖重新填充。 唷! – n00bProgrammer