为了账号安全,请及时绑定邮箱和手机立即绑定

如何以编程方式创建按钮?

如何以编程方式创建按钮?

小怪兽爱吃肉 2019-08-30 11:09:35
如何UIButton在Swift中以编程方式创建图形元素(如a )?我试图在视图中创建并添加按钮,但无法进行。
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

以下是UIButton使用targetAction以编程方式添加的完整解决方案。

Swift 2.2


override func viewDidLoad() {

  super.viewDidLoad()


  let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))

  button.backgroundColor = .greenColor()

  button.setTitle("Test Button", forState: .Normal)

  button.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)


  self.view.addSubview(button)

}


func buttonAction(sender: UIButton!) {

  print("Button tapped")

}

使用NSLayoutConstraint而不是frame为每个iPhone屏幕正确放置按钮可能更好。


更新了Swift 3.1的代码:


override func viewDidLoad() {

  super.viewDidLoad()


  let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))

  button.backgroundColor = .green

  button.setTitle("Test Button", for: .normal)

  button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)


  self.view.addSubview(button)

}


func buttonAction(sender: UIButton!) {

  print("Button tapped")

}

更新了Swift 4.2的代码:


override func viewDidLoad() {

  super.viewDidLoad()


  let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))

  button.backgroundColor = .green

  button.setTitle("Test Button", for: .normal)

  button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)


  self.view.addSubview(button)

}


@objc func buttonAction(sender: UIButton!) {

  print("Button tapped")

}

如果func buttonAction声明private或上述仍然有效internal。


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 428 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信