我找到了这个主题的Objective-C编码。但问题是Objective-C中的大多数类和函数都在swift编程语言中被弃用。
我在UITableView中使用带有flagForAction[Boolean Value]
的UIButton。所以我想要实现的是,如果UIButton创建一次,则无需重新创建它。因此,我需要检查UIButton是否已经存在。有人向我建议了标签的概念,将特定标签应用于此UIButton并检查视图是否存在。但我不知道该怎么做。
答案 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..
}
}