xcode新手。我正在使用以下函数来创建许多新按钮。我想在创建单个按钮后为其设置动画,但不确定如何与新按钮进行交互。
功能:
func createButton(buttonTitle: String, xaxis: Double, yaxis: Double) {
let button = UIButton(type: .system)
button.frame = CGRect(x: xaxis, y: yaxis, width: 100.0, height: 30.0)
button.setTitle(NSLocalizedString(buttonTitle, comment: buttonTitle), for: .normal)
button.layer.cornerRadius = 0.05 * button.bounds.size.width
button.clipsToBounds = true
button.backgroundColor = .gray
button.setTitleColor(.white, for: .normal)
button.adjustsImageWhenHighlighted = true
button.addTarget(self, action: #selector(self.buttonAction(sender:)), for: .touchUpInside)
view.addSubview(button)
}
答案 0 :(得分:2)
根据Nick Allen的建议,您可以更改函数以返回UIButton
func createButton(buttonTitle: String, xaxis: Double, yaxis: Double) -> UIButton {
let button = UIButton(type: .system)
return button
}
// - 然后创建按钮
let button1 = createButton(.....)
view.addSubview(button1).
答案 1 :(得分:1)
如果您不想创建一个实例变量来保存按钮,可以在按钮中添加一个标记,并在以后获取对它的引用。
为此,请在按钮上添加标签:
button.tag = 300 // no other view should have the same tag to avoid issues
然后您可以从视图控制器的任何位置轻松引用您的按钮,如下所示:
if let button = view.viewWithTag(300) as? UIButton {
// change any properties of the button as you would normally do
button.setTitle("Updated title", for: .normal)
}
我建议在ViewController类顶部的常量中定义标记值,以避免使用'幻数'在你的代码中。