gpt4 book ai didi

ios - 如何让 UILabel tap 像 UIButton 一样打开 URL

转载 作者:行者123 更新时间:2023-11-29 00:03:52 25 4
gpt4 key购买 nike

这是我提出的第一批编程问题之一,没有意识到关于最基本的应用程序操作之一的 UILabelsUIButtons 之间的差异。当然,注释中显而易见的答案是仅使用 UIButtons。然而,与其删除这个已回答的问题,如果有人可以使用 Sh_Khan 和编辑器的巧妙代码来使 UILabel 表现得像 UIButton ,这里是:

// This is the label
@IBOutlet weak var label: UILabel!

override func loadView() {
super.loadView()

// This is the key
let tap = UITapGestureRecognizer(target: self, action: #selector(self.onClicLabel(sender:)))
label.isUserInteractionEnabled = true
label.addGestureRecognizer(tap)
}

// And that's the function :)
func onClicLabel(sender:UITapGestureRecognizer) {
openUrl("http://www.google.com")
}


func openUrl(urlString:String!) {
let url = URL(string: urlString)!
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}

无论如何,我的应用程序有多个按钮(错误:这是我最初没有意识到标签和按钮之间差异的地方):

 @IBOutlet weak var labelONE: UILabel!
@IBOutlet weak var labelTWO: UILabel!
@IBOutlet weak var labelTHREE: UILabel!

每一个都是打开一个对应的URL:

openUrl("https://www.google.com")
openUrl("https://www.yahoo.com")
openUrl("https://www.twitter.com")

最佳答案

首先你应该更好地使用按钮来处理类似的事情 (UIButton) 而不是标签 (UILabel) ,来解决你的问题试试这个

 // This is the key
let tap = UITapGestureRecognizer(target: self, action: #selector(self.onClicLabel(sender:)))
label.isUserInteractionEnabled = true
label.addGestureRecognizer(tap)

let tap2 = UITapGestureRecognizer(target: self, action: #selector(self.onClicLabel(sender:)))
label2.isUserInteractionEnabled = true
label2.addGestureRecognizer(tap2)

@objc func onClicLabel(sender:UITapGestureRecognizer) {
if(sender.view == self.label)
{
openUrl("http://www.google.com")
}
else if(sender.view == self.label2)
{
openUrl("http://www.twitter.com")
}
}

关于ios - 如何让 UILabel tap 像 UIButton 一样打开 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48669919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com