2016-09-22 6 views
-3

基本的にUIButtonをプログラムで作成したいと考えています。たとえば、私のビューコントローラでは、UIButtonが同じ行に動的に作成され、そのレイアウトやプロパティが色、フォント、およびサイズに設定されます。Swift:プログラムで特定のフォントとサイズのUIButtonを作成する

また、特定のボタンの操作方法を追加する必要があります。

+0

お困りですか? – rmaddy

+0

最後にボタンの操作方法のみが必要ですか? – vaibhav

+0

はい@vaibhavが必要です –

答えて

1

uibuttonsを作成し、メインビュー内に追加します。以下の例を参照してください。

class yourClassName: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // here method CGRectMake defines x, y, width, height 
     var btnOne = UIButton(frame: CGRectMake(0, 0, 50, 50)) 
     var btnOne = UIButton(frame: CGRectMake(0, 0, 50, 50)) 

     self.view.addSubview(btnOne) // add button inside view 
     self.view.addSubview(btnOne) // add button inside view 

     // using selector you must specify a method for each button 
     btnOne.addTarget(self, action: #selector(self.actionOne), forControlEvents: .TouchUpInside) 

     btnTwo.addTarget(self, action: #selector(self.actionTwo), forControlEvents: .TouchUpInside) 
} 

アクション・メソッド:

func actionOne(sender : UIButton) { 
    print("button one tapped") 
} 

func actionTwo(sender : UIButton) { 
    print("button second tapped") 
} 
+0

アウトレットがすべてコードで実行されているのはなぜですか? – rmaddy

+0

あなたの推薦によると@rmaddy私の編集ansを参照してください.. :) – vaibhav

+0

ええ@vaibhavこれもまた私を助けてくれてありがとう –

1

あなたがプログラム的にそれをやってみたかった場合は、次の線に沿って考えるかもしれない:

はのためにあなたのボタンを作成します。.. 。viewDidLoad()のループ(必要に応じて他の場所):

let buttonWidth : CGFloat = self.view.frame.width/10 
    let buttonHeight : CGFloat = 50 

    for count in 0..<10 { 
     let newButton = UIButton(frame: CGRect(origin: CGPoint(x: CGFloat(count) * buttonWidth, y: 50), size: CGSize(width: buttonWidth, height: buttonHeight))) 
     newButton.backgroundColor = UIColor.red 
     newButton.setTitle("Button #\(count)", for: UIControlState.normal) 
     newButton.setTitleColor(UIColor.white, for: UIControlState.normal) 
     newButton.addTarget(self, action: #selector(self.buttonTapped(sender:)), for: UIControlEvents.touchUpInside) 
     newButton.titleLabel?.font = UIFont(name: "Arial", size: 10) 
     newButton.tag = count 
     self.view.addSubview(newButton) 
    } 

次にあなたがセレクタbuttonTapped(送信者:UIButton)を実装することができ、次のようにあなたが(例えば、switch文を経由して)アクションを調整することができますので、ボタンのタグを取得し、:

func buttonTapped(sender: UIButton) -> Void { 
    print("\(sender.tag) was tapped!") 

    // Do something more interesting based on the tag here... 
} 

これはあなたがすることができますさまざまなセレクタを使わずにたくさんのボタンアクションを設定できます。希望が役立ちます。

+0

ええ、ありがとう@Sparky –

0
let bacViewOne=UIButton(frame: CGRectMake(20, 60 , 130, 130)) 
      bacViewOne.backgroundColor=UIColor.whiteColor() 
      bacViewOne.layer.cornerRadius=5.0 
      btn1 = UIButton(type: UIButtonType.Custom) as UIButton 
      btn1.setImage(UIImage(named: "new.png"), forState: UIControlState.Normal) 
      btn1.frame = CGRectMake((bacViewOne.frame.size.width-90)/2, 5 , 90, 90) 
      //btn1.backgroundColor = UIColor.whiteColor() 
      btn1.tag = 1 
      btn1.addTarget(self, action: #selector(ViewController.dashboard(_:)), forControlEvents: UIControlEvents.TouchUpInside) 
      bacViewOne.addSubview(btn1) 
      self.view.addSubview(bacViewOne) 

      let l1 = UILabel(frame: CGRectMake((bacViewOne.frame.size.width-90)/2, 100, 90, 21)) 

      l1.textAlignment = NSTextAlignment.Center 
      l1.textColor = UIColor(red: 41/255.0, green: 43/255.0, blue: 64/255.0, alpha: 1) 
      l1.text = "Dashboard" 
      //l1.font = UIFont (name: "BakerSignetBT-Roman", size: 15) 
      bacViewOne.addSubview(l1) 
      l1.font = UIFont.systemFontOfSize(11) 



      var bacViewT=UIButton(type: UIButtonType.Custom) as UIButton 
      bacViewT .frame = CGRectMake(20, 240, 130, 130) 
      bacViewT.backgroundColor=UIColor.whiteColor() 
      bacViewT.layer.cornerRadius=5.0 
      btn3 = UIButton(type: UIButtonType.Custom) as UIButton 
      btn3.setImage(UIImage(named: "Usernew.png"), forState: UIControlState.Normal) 
      btn3.frame = CGRectMake((bacViewT.frame.size.width-90)/2, 5, 90, 90) 
//   btn3.backgroundColor = UIColor(red: 41/255.0, green: 43/255.0, blue: 64/255.0, alpha: 1) 
      btn3.tag = 2 
      btn3.addTarget(self, action: #selector(ViewController.userExpenses(_:)), forControlEvents: UIControlEvents.TouchUpInside) 
      bacViewT.addSubview(btn3) 

      self.view.addSubview(bacViewT) 

      let l2 = UILabel(frame: CGRectMake((bacViewT.frame.size.width-100)/2, 100, 100, 21)) 

      l2.textAlignment = NSTextAlignment.Center 
      l2.textColor = UIColor(red: 41/255.0, green: 43/255.0, blue: 64/255.0, alpha: 1) 
      l2.text = "User Expense" 
      //l2.font = UIFont (name: "BakerSignetBT-Roman", size: 15) 
      bacViewT.addSubview(l2) 
      l2.font = UIFont.systemFontOfSize(11) 
      //7 


      let bacViewTh=UIButton(frame: CGRectMake(170, 60, 130, 130)) 
      bacViewTh.backgroundColor=UIColor.whiteColor() 
      bacViewTh.layer.cornerRadius=5.0 
      btn7 = UIButton(type: UIButtonType.Custom) as UIButton 
      btn7.setImage(UIImage(named: "events.png"), forState: UIControlState.Normal) 
      btn7.frame = CGRectMake((bacViewTh.frame.size.width-90)/2, 5, 90, 90) 
      btn7.tag = 3 
      btn7.addTarget(self, action: #selector(ViewController.upcomingEvents(_:)), forControlEvents: UIControlEvents.TouchUpInside) 
      bacViewTh.addSubview(btn7) 


      let l3 = UILabel(frame: CGRectMake((bacViewTh.frame.size.width-100)/2, 100, 100, 21)) 

      l3.textAlignment = NSTextAlignment.Center 
      l3.textColor = UIColor(red: 41/255.0, green: 43/255.0, blue: 64/255.0, alpha: 1) 
      l3.text = "Upcoming Events" 
      //l3.font = UIFont (name: "BakerSignetBT-Roman", size: 15) 
      bacViewTh.addSubview(l3) 
      l3.font = UIFont.systemFontOfSize(11) 
      self.view.addSubview(bacViewTh) 
      //8 

      let bacViewF=UIButton(frame: CGRectMake(170, 240, 130, 130)) 
      bacViewF.backgroundColor=UIColor.whiteColor() 
      bacViewF.layer.cornerRadius=5.0 
      btn9 = UIButton(type: UIButtonType.Custom) as UIButton 
      btn9.setImage(UIImage(named: "Location.png"), forState: UIControlState.Normal) 
      btn9.frame = CGRectMake((bacViewF.frame.size.width-90)/2, 5, 90, 90) 
      btn9.tag = 4 

      btn9.addTarget(self, action: #selector(ViewController.userLocations(_:)), forControlEvents: UIControlEvents.TouchUpInside) 
      bacViewF.addSubview(btn9) 
      self.view.addSubview(bacViewF) 

      let l4 = UILabel(frame: CGRectMake((bacViewF.frame.size.width-100)/2, 100, 100, 21)) 

      l4.textAlignment = NSTextAlignment.Center 
      l4.textColor = UIColor(red: 41/255.0, green: 43/255.0, blue: 64/255.0, alpha: 1) 
      l4.text = "User Locations" 
      bacViewF.addSubview(l4) 
      l4.font = UIFont.systemFontOfSize(11) 
+0

ありがとう、m誰かのマイナスポイントを削除@Yuvarah M –

関連する問題