亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何以編程方式創建按鈕?

如何以編程方式創建按鈕?

小怪獸愛吃肉 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 關注
  • 460 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號