![](/img/trans.png)
[英]How to add a UIButton in the background of other UI elements using Interface Builder?
[英]How to connect UIButton to action using only interface builder
目前,我正在使用以下代码为键盘设置按钮:
func setupButtons() {
for subview in self.view.subviews {
if subview.isKindOfClass(UIButton) {
setupButton(subview as! UIButton)
}
}
}
func setupButton(btn: UIButton) {
btn.addTarget(self, action: #selector(KeyboardViewController.keyPressed(_:)), forControlEvents: .TouchUpInside)
}
但是,无论如何,我可以跳过此操作,也可以跳过布局生成器中的所有目标,以便节省在每个键盘视图上的按钮之间循环的时间吗?
当然,有两种方法可以通过插座和操作将对象连接到Interface Builder。
class ViewController: UIViewController {
@IBOutlet weak var doStuffButton: UIButton!
@IBAction func doStuff(sender: UIButton) {
//do stuff
}
}
添加该代码后,在界面生成器中查找并单击此类的视图控制器。
单击connections inspector
在出口下,您现在将看到doStuffButton
,但是在其右侧的圆圈上,按下Control键并用鼠标单击,然后将其拖动到要连接并释放的按钮上。 启用操作不需要设置插座。 我也想向您展示。
在同一窗格中,您还将看到收到的操作和doStuff:
方法。 以相同的方式单击并拖动,然后释放按钮。 选择您要处理此操作的事件类型(内部正常处理)。
一旦您都迷上了,它应该看起来像这样:
如何执行此操作还有许多其他变体,但是我认为这可以帮助您快速入门。
如果您想问如何在不编写任何代码的情况下执行此操作,只需进入Xcode的助手编辑器视图,然后按住Ctrl并将其从按钮拖动到控制器类文件。 然后,当弹出窗口显示时,将输出更改为动作并为其指定方法名称。 这将为您创建IBAction方法。
但是实际上,您现在使用for循环的方式要好得多。 特别是如果您有许多按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.