col*_*mcp 1 uibutton ios addtarget xcode7 swift2
我正在设计一个简单的数独应用程序,需要在点击 81 个按钮中的任何一个时触发一个动作。我在 ViewController 中创建了一个 UIButton 数组:
class SudokuBoardController : UIViewController {
@IBOutlet var collectionOfButtons: Array<UIButton>?
override func viewDidLoad() {
collectionOfButtons.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
...
}
}
Run Code Online (Sandbox Code Playgroud)
我可以从情节提要中将按钮添加到 Array 中,就在我尝试 addTarget 时,我收到以下消息:
Value of type 'Array<UIButton>?' has no member addTarget
Run Code Online (Sandbox Code Playgroud)
是否有解决此问题的方法不涉及我为每个按钮创建 81 个不同的输出?
谢谢你的帮助!
干杯
您有一个Array,因此您想遍历UIButton数组中的s。并且因为您使用的是 Swift,所以您会希望以 Swifty 的方式进行操作,而不是使用简单的for循环。
collectionOfButtons?.enumerate().forEach({ index, button in
button.tag = index
button.addTarget(self, action: "buttonClicked:", forControlEvents: .TouchUpInside)
})
Run Code Online (Sandbox Code Playgroud)
这也很好地处理了collectionOfButtons一个可选的事实,如果它是nil,则不执行任何操作,而不是崩溃。