如何在 Swift 中制作一个单词可点击的 UITextView?
Posted
技术标签:
【中文标题】如何在 Swift 中制作一个单词可点击的 UITextView?【英文标题】:How to make a word clickable UITextView in Swift? 【发布时间】:2019-04-26 10:15:49 【问题描述】:有没有办法创建一个可以点击单词的UITextView
。
当我单击单词时,单词将突出显示。请参考下图。
【问题讨论】:
是的,有可能,但你怎么知道哪个词是可点击的? 使用 UITapGestureRecognizer 我可以找到被点击的单词的位置,然后计算文本范围,最后得到具有该文本范围的单词。我通过搜索“ios uitextview get tapped word”找到了一些解决方案 ***.com/questions/19779946/… ? ***.com/questions/36043006/… 【参考方案1】: let textTest = "I have read and agree with the Privacy Policy & Terms and Conditions"
let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapLabel))
textTest.isUserInteractionEnabled = true
textTest.addGestureRecognizer(tap)
@IBAction func tapLabel(gesture: UITapGestureRecognizer)
let text = (textTest)!
let termsRange = (text as NSString).range(of: "Terms and Conditions")
let privacyRange = (text as NSString).range(of: "Privacy Policy")
if gesture.didTapAttributedTextInLabel(label: attributeLabel, inRange: termsRange)
print("Tapped terms")
let vc = self.storyboard?.instantiateViewController(withIdentifier: "TermsConditionViewController") as! TermsConditionViewController
self.navigationController?.pushViewController(vc, animated: true)
else if gesture.didTapAttributedTextInLabel(label: attributeLabel, inRange: privacyRange)
print("Tapped privacy")
let vc = self.storyboard?.instantiateViewController(withIdentifier: "PrivacyPolicyViewController") as! PrivacyPolicyViewController
self.navigationController?.pushViewController(vc, animated: true)
else
print("Tapped none")
【讨论】:
谢谢伙计。但是我有一个问题,所以如果我想让每个单词都可以点击,那么我必须让每个单词都成为一个范围? 让 typeCasteToStringFirst = textField.text 作为 NSString? let newString = typeCasteToStringFirst?.replacingCharacters(in: range, with: string) 你可以试试这个。 当然没有问题。以上是关于如何在 Swift 中制作一个单词可点击的 UITextView?的主要内容,如果未能解决你的问题,请参考以下文章
swift如何将图像传递给可点击的tableview单元格?
如何在 Swift 中制作放置在 UIViewController 中的水平可滚动组件?