问题
I have a table view in which each row contains various information like name, picture, message etc.
This message may contain some words starting with '@' or '#'. I want to make these words clickable and on click i want to open another view controller instead of browser.
I know we can set UIDataDetector
type on textview for links but that only works for links.
Is there any way so that I can tell textview to detect text matching some regular expression and then make that text clickable ?
EDIT: Finally I am able to achieve this, for those who are still dealing with this issue, I have written a blog post: http://www.uditagarwal.com/2013/10/make-different-words-in-uitextview.html
回答1:
Answer : GLTapLabel
There is a method named -drawTextInRect
in class named GLTapLabel
which contains one line of code :
BOOL hot = [word hasPrefix:@"#"] || [word hasPrefix:@"@"];
You just have to change the prefix values here and you will have your desired result.
There is one delegate method named -labledidSelectedHotWord
. You can write here the code about the action you want to perform when the word with desired prefix is clicked. In your case, you can write your navigation code in this method.
Here is the Screenshot :
来源:https://stackoverflow.com/questions/19397619/create-words-starting-with-sign-clickable-in-ios