在向按钮单击事件添加功能时修复 "use of unresolved identifier 'addTarget'"
Fixing "use of unresolved identifier 'addTarget'" while adding func to button click event
我已经以编程方式创建了一个 UIButton,如下所示:
let buttons: [UIButton] = [UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 50))];
现在,如果我尝试像这样以编程方式向其添加函数:
[buttons[0] addTarget:self action:@selector(buttonClicked:)forControlEvents:UIControlEventTouchUpInside]
我收到一条错误消息,提示未定义 addTarget。
我该如何解决这个问题?
你试图在 swift 中使用 Objective-C 语法,这是完全错误的,请像
一样使用你的代码
buttons.first?.addTarget(self, action: #selector(self.buttonClicked(_:)), for: .touchUpInside)
并像这样处理操作
@objc func buttonClicked( _ sender: UIButton) {
print("buttonClicked Action Found")
}
首先,您要创建 [UIButton]
,它是 UIButton
的 Array
,而不是单个 Button。
您不能以这种方式创建 Array
个 UIButton
。您将需要一个 for
循环,并且您需要相应地更新 frame
。
您可以这样创建一个 UIButton
:
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
然后你可以这样将它添加到 UIView
:
self.view.addSubview(button)
如果没有上面一行,您的按钮将不会显示在您的屏幕上。
接下来,如果您想向该按钮添加操作,可以通过在按钮代码中添加以下行来实现:
button.addTarget(self, action: #selector(buttonClicked), for: .touchUpInside)
并且它需要一个辅助方法,该方法将在单击按钮时执行。
@objc func buttonClicked(_ sender: UIButton) {
//Perform your action when button is clicked.
}
您还需要对按钮应用 backgroundColor
和 setTitle
。
您的最终代码将如下所示:
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = UIColor.green
button.setTitle("Test Button", for: .normal)
button.addTarget(self, action: #selector(buttonClicked), for: .touchUpInside)
self.view.addSubview(button)
我已经以编程方式创建了一个 UIButton,如下所示:
let buttons: [UIButton] = [UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 50))];
现在,如果我尝试像这样以编程方式向其添加函数:
[buttons[0] addTarget:self action:@selector(buttonClicked:)forControlEvents:UIControlEventTouchUpInside]
我收到一条错误消息,提示未定义 addTarget。 我该如何解决这个问题?
你试图在 swift 中使用 Objective-C 语法,这是完全错误的,请像
一样使用你的代码 buttons.first?.addTarget(self, action: #selector(self.buttonClicked(_:)), for: .touchUpInside)
并像这样处理操作
@objc func buttonClicked( _ sender: UIButton) {
print("buttonClicked Action Found")
}
首先,您要创建 [UIButton]
,它是 UIButton
的 Array
,而不是单个 Button。
您不能以这种方式创建 Array
个 UIButton
。您将需要一个 for
循环,并且您需要相应地更新 frame
。
您可以这样创建一个 UIButton
:
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
然后你可以这样将它添加到 UIView
:
self.view.addSubview(button)
如果没有上面一行,您的按钮将不会显示在您的屏幕上。
接下来,如果您想向该按钮添加操作,可以通过在按钮代码中添加以下行来实现:
button.addTarget(self, action: #selector(buttonClicked), for: .touchUpInside)
并且它需要一个辅助方法,该方法将在单击按钮时执行。
@objc func buttonClicked(_ sender: UIButton) {
//Perform your action when button is clicked.
}
您还需要对按钮应用 backgroundColor
和 setTitle
。
您的最终代码将如下所示:
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = UIColor.green
button.setTitle("Test Button", for: .normal)
button.addTarget(self, action: #selector(buttonClicked), for: .touchUpInside)
self.view.addSubview(button)