How do I create a basic UIButton programmatically?

后端 未结 30 900
清歌不尽
清歌不尽 2020-11-22 14:41

How can I create a basic UIButton programmatically? For example in my view controller, when executing the viewDidLoad method, three UIButton<

相关标签:
30条回答
  • 2020-11-22 15:10

    Swift3 version should be

    let myButton:UIButton = {
                let myButton = UIButton() // if you want to set the type use like UIButton(type: .RoundedRect) or UIButton(type: .Custom)
                myButton.setTitle("Hai Touch Me", for: .normal)
                myButton.setTitleColor(UIColor.blue, for: .normal)
                myButton.frame = CGRect(x: 20, y: 20, width: 100, height: 40)
    
                myButton.addTarget(self, action: #selector(ViewController.pressedAction(_:)), for: .touchUpInside)
                self.view.addSubview(myButton)
    
                return myButton
    
            }()
    
    0 讨论(0)
  • 2020-11-22 15:12

    For creating UIButton programmatically we can create in both objective c and swift

    SWIFT 3

    let buttonSwift   = UIButton(type: UIButtonType.system) as UIButton
                          //OR 
    let buttonSwift   = UIButton(type: UIButtonType.Custom) as UIButton
    //Set Frame for Button
    buttonSwift.frame = CGRect(x: 100, y: 100, width: 200, height: 100)
    //Set title for button
    buttonSwift.setTitle("ClickMe", for: .normal)
    //If you want to set color for button title
    buttonSwift.setTitleColor(UIColor.white, for: .normal)
    //If you want to set Background color for button
    buttonSwift.backgroundColor = UIColor.black
    //If you want to set tag for button
    buttonSwift.tag = 0
    //If you want to add or set image for button
    let image = UIImage(named: "YourImageName") as UIImage?
    buttonSwift.setImage(image, for: .normal)
    //If you want to add or set Background image for button
    buttonSwift.setBackgroundImage(image, for: .normal)
    //Add action for button
    buttonSwift.addTarget(self, action: #selector(actionPressMe), for:.touchUpInside)
    //Add button as SubView to Super View
    self.view.addSubview(buttonSwift)
    

    UIButton Action Method

    func actionPressMe(sender: UIButton!) 
    {
        NSLog("Clicked button tag is %@", sender.tag)
                   OR
        print("Clicked button tag is \(sender.tag)")
    
        //Then do whatever you want to do here
    
        ........  
    }
    

    OBJECTIVE C

    UIButton *buttonObjectiveC = [UIButton buttonWithType:UIButtonTypeCustom];
               OR
    UIButton *buttonObjectiveC = [UIButton buttonWithType:UIButtonTypeSystem];
    buttonObjectiveC.frame = CGRectMake(200, 100, 200, 100);
    //Set title for button
    [buttonObjectiveC setTitle:@"ClickMe" forState:UIControlStateNormal];
    //If you want to set color for button title
    [buttonObjectiveC setTitleColor:[UIColor  whiteColor] forState: UIControlStateNormal];
    //If you want to set Background color for button
    [buttonObjectiveC setBackgroundColor:[UIColor blackColor]];
    //If you want to set tag for button
    buttonSwift.tag = 0;
    //If you want to add or set image for button
    UIImage *image = [UIImage imageNamed:@"YourImageName"];
    [buttonObjectiveC setImage:image forState:UIControlStateNormal];
    //If you want to add or set Background image for button
    [buttonObjectiveC setBackgroundImage:image forState:UIControlStateNormal];
    //Add action for button
    [buttonObjectiveC addTarget:self action:@selector(actionPressMe:)forControlEvents:UIControlEventTouchUpInside];
    //Add button as SubView to Super View
    [self.view addSubview:buttonObjectiveC];
    

    UIButton Action Method

    - (void)actionPressMe:(UIButton *)sender 
    {
        NSLog(@"Clicked button tag is %@",sender.tag);
        //Then do whatever you want to do here
        ..........
    }
    

    Output Screenshot is

    0 讨论(0)
  • 2020-11-22 15:13

    try this:

    first write this in your .h file of viewcontroller

    UIButton *btn;
    

    Now write this in your .m file of viewcontrollers viewDidLoad.

    btn=[[UIButton alloc]initWithFrame:CGRectMake(50, 20, 30, 30)];
    [btn setBackgroundColor:[UIColor orangeColor]];
    [btn setTitle: @"My Button" forState:UIControlStateNormal];
    [btn setTitleColor: [UIColor blueVolor] forState:UIControlStateNormal];
    [btn.layer setBorderWidth:1.0f];
    [btn.layer setBorderColor:[UIColor BlueVolor].CGColor];
    //adding action programatically
    [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    

    write this outside viewDidLoad method in .m file of your view controller

    - (IBAction)btnClicked:(id)sender
    {
      //Write a code you want to execute on buttons click event
    }
    
    0 讨论(0)
  • 2020-11-22 15:16

    This is an example as well to create three buttons. Just move their location.

    UIImage *buttonOff = [UIImage imageNamed:@"crysBallNorm.png"];
    UIImage *buttonOn = [UIImage imageNamed:@"crysBallHigh.png"];
    
    UIButton *predictButton = [UIButton alloc];
    predictButton = [UIButton buttonWithType:UIButtonTypeCustom];
    predictButton.frame = CGRectMake(180.0, 510.0, 120.0, 30.0);
    [predictButton setBackgroundImage:buttonOff forState:UIControlStateNormal];
    [predictButton setBackgroundImage:buttonOn forState:UIControlStateHighlighted];
    [predictButton setTitle:@"Predict" forState:UIControlStateNormal];
    [predictButton setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
    [predictButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:predictButton];
    
    0 讨论(0)
  • 2020-11-22 15:19

    Here's one:

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:self 
               action:@selector(aMethod:)
     forControlEvents:UIControlEventTouchUpInside];
    [button setTitle:@"Show View" forState:UIControlStateNormal];
    button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
    [view addSubview:button];
    
    0 讨论(0)
  • 2020-11-22 15:19

    To add a button programatically to your controller's view, use the following:

    -(void)viewDidLoad
    {
       UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
       btn.frame = CGRectMake(0, 0, 100, 50);
       [btn setTitle:@"Hello, world!" forState:UIControlStateNormal];
       [self.view addSubview:btn];
    }
    

    To add three of these, rinse and repeat.

    0 讨论(0)
提交回复
热议问题