How do I create a basic UIButton programmatically?

后端 未结 30 903
清歌不尽
清歌不尽 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:22

    try this code to create a button and repeat it for 2 more times with different coordinates and the method(myButtonClick) is called when the button is pressed

    UIButton *editButton = [UIButton buttonWithType: UIButtonTypeCustom];
    editButton.frame = CGRectMake(0, 0, width, height);
    [editButton setBackgroundImage: editButtonImage forState: UIControlStateNormal];
    [myButton addTarget:self action:@selector(myButtonClick:)    forControlEvents:UIControlEventTouchUpInside]; 
    editButton.adjustsImageWhenHighlighted = YES;
    editButton.titleLabel.text = @"Edit";
    editButton.titleLabel.textColor = [UIColor whiteColor];
    editButton.titleLabel.textAlignment = UITextAlignmentCenter;
    editButton.titleLabel.font = [UIFont fontWithName: @"Helvetica" size: 14];
    [self.view addSubview: editButton];
    
    -(void) myButtonClick:(NSString *)myString{
    
       NSLog(@"you clicked on button %@", myString);
    }
    
    0 讨论(0)
  • 2020-11-22 15:22
    -(UIButton *)addButton:(NSString *)title :(CGRect)frame : (SEL)selector :(UIImage *)image :(int)tag{
    
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = frame;
    [btn addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
    [btn setTitle:title forState:UIControlStateNormal];
    [btn setImage:image forState:UIControlStateNormal];
    btn.backgroundColor = [UIColor clearColor];
    btn.tag = tag;
    
    return btn;
    
    }
    

    and you can add it to the view:

    [self.view addSubview:[self addButton:nil :self.view.frame :@selector(btnAction:) :[UIImage imageNamed:@"img.png"] :1]];
    
    0 讨论(0)
  • 2020-11-22 15:22

    As of Swift 3, several changes have been made to the syntax.

    Here is how you would go about creating a basic button as of Swift 3:

        let button = UIButton(type: UIButtonType.system) as UIButton
        button.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
        button.backgroundColor = UIColor.green
        button.setTitle("Example Button", for: UIControlState.normal)
        self.view.addSubview(button)
    

    Here are the changes that have been made since previous versions of Swift:

    let button = UIButton(type: UIButtonType.System) as UIButton
    
    // system no longer capitalised
    
    button.frame = CGRectMake(100, 100, 100, 50)
    
    // CGRectMake has been removed as of Swift 3
    
    button.backgroundColor = UIColor.greenColor()
    
    // greenColor replaced with green
    
    button.setTitle("Example Button", forState: UIControlState.Normal)
    
    // normal is no longer capitalised
    
    self.view.addSubview(button)
    
    0 讨论(0)
  • 2020-11-22 15:23
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button addTarget:self 
           action:@selector(aMethod:)
     forControlEvents:UIControlEventTouchDown];
    [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:25

    Objective-C

    UIButton *but= [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [but addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
     [but setFrame:CGRectMake(52, 252, 215, 40)];
    [but setTitle:@"Login" forState:UIControlStateNormal];
    [but setExclusiveTouch:YES];
    
     // if you like to add backgroundImage else no need
       [but setbackgroundImage:[UIImage imageNamed:@"XXX.png"] forState:UIControlStateNormal];
    
    [self.view addSubview:but];
    
    -(void) buttonClicked:(UIButton*)sender
     {
    NSLog(@"you clicked on button %@", sender.tag);
     }
    

    Swift

        let myButton = UIButton() // if you want to set the type use like UIButton(type: .RoundedRect) or UIButton(type: .Custom)
        myButton.setTitle("Hai Touch Me", forState: .Normal)
        myButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
        myButton.frame = CGRectMake(15, 50, 300, 500)
        myButton.addTarget(self, action: "pressedAction:", forControlEvents: .TouchUpInside)
    
        self.view.addSubview( myButton)
    
    
    func pressedAction(sender: UIButton!) {
       // do your stuff here 
      NSLog("you clicked on button %@", sender.tag)
    }
    

    Swift3 and above

      let myButton = UIButton() // if you want to set the type use like UIButton(type: .RoundedRect) or UIButton(type: .Custom)
        myButton.setTitle("Hi, Click me", for: .normal)
        myButton.setTitleColor(UIColor.blue, for: .normal)
        myButton.frame = CGRect(x: 15, y: 50, width: 300, height: 500)
    
        myButton.addTarget(self, action: #selector(pressedAction(_:)), for: .touchUpInside)
        self.view.addSubview( myButton)
    
    
    
    func pressedAction(_ sender: UIButton) {
       // do your stuff here 
      print("you clicked on button \(sender.tag)")
    }
    

    SwiftUI

    for example you get the step by step implemntation from SwiftUI Developer portal

    import SwiftUI
    
    struct ContentView : View {
        var body: some View {
            VStack {
    
                Text("Target Color Black")
                 Button(action: { 
                     /* handle button action here */ })
                {
             Text("your Button Name")
              .color(.white)
                            .padding(10)
                            .background(Color.blue)
                            .cornerRadius(5)
                            .shadow(radius: 5)
                            .clipShape(RoundedRectangle(cornerRadius: 5))
         }
    
    
            }
        }
    }
    
    #if DEBUG
    struct ContentView_Previews : PreviewProvider {
        static var previews: some View {
            ContentView()
        }
    }
    #endif
    
    0 讨论(0)
  • 2020-11-22 15:25

    You can create button by this code.

     UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
     [btn addTarget:self action:@selector(btnAction) forControlEvents:UIControlEventTouchDragInside];
     [btn setTitle:@"click button" forState:UIControlStateNormal];
      btn.frame = CGRectMake(50, 100, 80, 40);
      [self.view addSubview:btn];
    

    Here is the button action method

     -(void)btnAction
     {
       NSLog(@"button clicked");
     }
    
    0 讨论(0)
提交回复
热议问题