gpt4 book ai didi

arrays - 按钮以正确的顺序访问字典数据

转载 作者:行者123 更新时间:2023-11-28 12:06:48 25 4
gpt4 key购买 nike

我有一个按钮数组和一个字典,其中 keys 是按钮的名称,values 是一个 url 这些按钮用于打开.

所有这些都按正确的顺序排序,并显示正确的按钮名称。

我正在努力将正确的 url 传递给 openLink() 函数。

这是我的代码:

@IBOutlet var links: [UIButton]!

let keysAndValues = ["Twitter" : "https://twitter.com/",
"Facebook" : "https://facebook.com/",
"YouTube" : "https://youtube.com/"]

func setButtonName() {

let sortedDict = keysAndValues.sorted(by: <)
let sortedButtons = links.sorted { $0.frame.origin.y < $1.frame.origin.y }

for (index, button) in sortedButtons.enumerated() {
button.setTitle(sortedDict[index].key, for: UIControlState.normal)
}
}

@IBAction func buttonTapped(_ sender: Any) {

let sortedDict = keysAndValues.sorted(by: <)
let sortedButtons = links.sorted { $0.frame.origin.y < $1.frame.origin.y }

for (index, _) in sortedButtons.enumerated() {
openLink(sortedDict[index].value)
}
}
func openLink(_ link: String) {
if let url = URL(string: "\(link)") {
UIApplication.shared.open(url, options: [:])
}
}

如何将正确的传递给openLink(_ link: String)?目前链接以随机顺序工作。

PS:每个按钮都连接到@IBOutlet@IBAction

最佳答案

您的问题是,对于每个按钮,您都会为每个按钮调用 openLink。显然,您只想调用 openLink 以获取与点击的按钮关联的一个 URL。

重写你的 buttonTapped 方法如下:

@IBAction func buttonTapped(_ sender: UIButton) {
let title = sender.title(for: .normal)

if let url = keysAndValues[title] {
openLink(url)
}
}

这会获取点击按钮的标题,并将其用作检索相应 URL 的键。

关于arrays - 按钮以正确的顺序访问字典数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49265548/

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