检查UIButton是否已存在于Swift中

时间:2014-07-03 10:10:38

标签: ios uibutton swift

我找到了这个主题的Objective-C编码。但问题是Objective-C中的大多数类和函数都在swift编程语言中被弃用。

我在UITableView中使用带有flagForAction[Boolean Value]的UIButton。所以我想要实现的是,如果UIButton创建一次,则无需重新创建它。因此,我需要检查UIButton是否已经存在。有人向我建议了标签的概念,将特定标签应用于此UIButton并检查视图是否存在。但我不知道该怎么做。

3 个答案:

答案 0 :(得分:2)

设置标签:

myButton.tag = 1234 // some unique value, probably better to define as an enum or constant

按标记检索视图(可能在cellForRowAtIndexPath中):

if let myButton = tableviewCell.viewWithTag(1234) { // change tableviewCell for whatever your tableview cell variable name is
    // myButton already existed
} else {
    // TableviewCell doesn't contain a myButton, so create one here and set the tag as above
}

答案 1 :(得分:0)

我使用视图作为示例。如果您不想使用按钮的标签属性,您还可以识别具有该按钮的accessibilityIdentifier属性的按钮。 例如:

    var button = UIButton(frame: CGRectMake(0, 0, 100, 44))
    button.accessibilityIdentifier = "button 1"
    self.view.addSubview(button)

在这里,我创建了一个带有accessibilityIdentifier“按钮1”的按钮

创建下一个按钮时,我会检查子视图中是否包含带有accessibilityIdentifier“按钮1”的按钮,如下所示

    var subviews : NSArray = self.view.subviews
    for button : AnyObject in subviews{

        if(button .isKindOfClass(UIButton)){

            if(button.accessibilityIdentifier == "button 1"){

                println("Button Already Exists")
            }else{
                println("Create new button")

            }
        }
    }

答案 2 :(得分:0)

swift 2.0

for view in myview.subviews {

      if let btn : UIButton = view as? UIButton {
           // access button here, either tag or title etc..
      }

 }