我已经阅读过,并在Xcode 7中尝试了许多不同的方法来创建UIButton。但是,它们都没有奏效。下面是我尝试过的代码之一,但是我收到错误“预期声明”,我无法弄清楚缺少什么。我是新手,并不完全理解这一点!谢谢!
btn: UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50))
btn.backgroundColor = UIColor.redColor()
btn.setTtitle("Click me",, forState: UIViewControlState.Normal)
btn.addTarget(self, action: "button action:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttonPuzzle)
func buttonAction(sender: UIButton!) {
let btnsendtag: UIButton = sender
if btnsendtag.tag == 1 {
print("It worked!")
} else {
print("It didn't work")
}
答案 0 :(得分:1)
您的代码中存在许多拼写错误和不一致的内容。这是一个有效的修正版本:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let btn = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50))
btn.tag = 1
btn.backgroundColor = UIColor.redColor()
btn.setTitle("Click me", forState: .Normal)
btn.addTarget(self, action: "buttonAction:", forControlEvents: .TouchUpInside)
self.view.addSubview(btn)
}
func buttonAction(sender: UIButton) {
if sender.tag == 1 {
print("It worked!")
} else {
print("It didn't work")
}
}
}
关键点:
btn
需要使用let
声明。"buttonAction:"
。viewDidLoad
。buttonAction
方法。答案 1 :(得分:0)
您的操作应为buttonAction:
,这是您尝试拨打的功能的名称。
另外,尝试使用@objc
标记您的功能,以便UIKit可以看到它:
@objc func buttonAction(sender: UIButton) {
//do something
}
这可能起作用的原因是UIButton
,在您的对象上调用respondsToSelector:
和performSector:
。不从NSObject
继承的Swift类直接没有respondsToSelector:
的实现,因此您的函数不会被调用。