繁体   English   中英

识别快速按下的 UIButton?

[英]Identify a UIButton that is pressed in swift?

如何将 UIButton 元素标识为字符串并在函数调用中使用该字符串? 我希望能够知道按下了什么按钮,然后根据按下的按钮提供信息。 我会使用字符串插值吗? 然后我想使用该字符串并从 Foursquare API 运行查询。

以下是我一直在研究的代码:

首先是按钮名称:

let buttonNames = ["african", "buffet", "burger", "chinese", "fries", "grill", "icecream", "jap", "mex", "pizza", "seafood", "streetfood", "taj", "turkey"

搜索词结果:

var searchTerms = ["African", "All you can eat", "Buffet", "Burgers", "Brazilian", "Breakfast", "BBQ", "Chips", "Chinese", "Cakes", "Café", "Doughnuts", "Dessert", "English Breakfast", "Fast Food", "Fries", "French", "Grill", "Greek", "Italian", "Indian", "Japanese", "Jamaican", "Lebenese", "Mexican", "Pizza", "Street Food", "Sandwhich", "Turkish"]

然后函数调用:

@IBAction func startSearchQuery() {
    if buttonNames == searchTerms {
        // Do Something
        var parameters = [Parameter.query:""]
        parameters += self.location.parameters()
        let searchTask = session.venues.search(parameters) {
            (result) -> Void in
            if let response = result.response {
                self.venues = response["venues"] as [JSONParameters]?
                self.tableView.reloadData()
            }
        }
        searchTask.start()
    } else {
        print("Search term not found!")
    }
}

如果我能得到一些帮助,我将不胜感激。 谢谢大家!

在按钮上放置一个标签,您可以通过编程或在属性检查器上执行此操作,默认标签为 0

button.tag = index

@IBAction func startSearchQuery(sender: AnyObject) {

 let button = sender as! UIButton
 let index = button.tag
 let buttonName = buttonNames[index]
  ....
}

创建两个按钮数组和搜索词。

@IBAction func startSearchQuery(sender: UIButton)
{
    let searchTerm = searchTerms[buttons.indexOf(sender)
    //do your staff
}

或者您可以设置/获取按钮的可访问性标签。

  @IBAction func myButton(_ sender: UIButton?) {
             let button = sender
             if button?.allControlEvents != .touchUpInside {
                 print("button not pressed from the button")
             } else {
                 print("button pressed from the button")
             }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM