我正在尝试让通知表单元格具有“User1 与 User2 成为 friend ”的标签,其中 User1 和 User2 是打开所述用户的个人资料 View 的按钮。当文本环绕时会出现问题。示例:
WANT DON'T WANT
| | | |
| "John Doe" became friends with "Jane | | "John" friends with "Jane"|
| Smith" | | "Doe "|
^notice how to wraps around wraps within btn bounds^
all the way back to left margin
我非常想要这个 HTML 的 Swift 等价物:<a href=..>Button 1</a> some plain text <a href=..>Button 2</a>
.有什么办法可以做到这一点吗?
最佳答案
您可以使用 UITextView 实现此目的。 UITextView 检测 url,您可以像这样使用该功能。
您可以为这些可点击值添加虚拟 url 值,然后这些值在 uitextview 中变为可点击。这是示例代码:-
import UIKit
class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var textView: UITextView!
let user01 = "http://www.dummyLinks";
let user02 = "http://www.dummy.com/privacy";
override func viewDidLoad() {
super.viewDidLoad()
self.textView.delegate = self
let labelText = "Chathuranga Silva is now Freind with Jason"
let string = NSMutableAttributedString(string: labelText)
var textRange = string.mutableString.rangeOfString("Chathuranga Silva")
string.addAttribute(NSLinkAttributeName, value: user01, range: textRange)
textRange = string.mutableString.rangeOfString("Jason")
string.addAttribute(NSLinkAttributeName, value: user02, range: textRange)
textView.attributedText = string
// Do any additional setup after loading the view, typically from a nib.
}
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
if (URL.absoluteString == user01) {
print("Selected user01")
} else if (URL.absoluteString == user02) {
print("Selected user02")
}
return false
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
关于swift - 如何在 UILabel 文本中混入 UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381201/