How do I create a basic UIButton programmatically?

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

    Come on, it's 2014! Why isn't code block evaluation assignment being used yet, as trends show it's the future!

    UIButton* button = ({
        //initialize button with frame
        UIButton* button = [[UIButton alloc] initWithFrame:({
            CGRect frame = CGRectMake(10.0, 10.0, 200.0, 75.0);
            frame;
        })];
        //set button background color
        [button setBackgroundColor:({
            UIColor* color = [UIColor colorWithRed:1.0 green:1.0 blue:0.0 alpha:1.0];
            color;
        })];
        //set button title for state
        [button setTitle:({
            NSString* string = [NSString stringWithFormat:@"title words"];
            string;
        }) forState:({
            UIControlState state = UIControlStateNormal;
            state;
        })];
        //set selector
        [button addTarget:self action:({
            SEL select = @selector(method:);
            select;
        }) forControlEvents:({
            UIControlEvents event = UIControlEventTouchUpInside;
            event;
        })];
        //return button
        button;
    });
    [self.view addSubview:button];
    

    whoa!

    whoa!

    Or the exact results can be accomplished as such:

    UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(10.0, 10.0, 200.0, 75.0)];
    [button setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:0.0 alpha:1.0]];
    [button setTitle:@"title words" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(method:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    

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

    You can just put the creator instance within a loop and dynamically add names from an array if you so wish.

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

    You can implement it in your ViewDidLoad Method:

    continuebtn = [[UIButton alloc]initWithFrame:CGRectMake(10, 100, view1.frame.size.width-20, 40)];
        [continuebtn setBackgroundColor:[UIColor grayColor]];
        [continuebtn setTitle:@"Continue" forState:UIControlStateNormal];
        continuebtn.layer.cornerRadius = 10;
        continuebtn.layer.borderWidth =1.0;
        continuebtn.layer.borderColor = [UIColor blackColor].CGColor;
        [continuebtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [continuebtn addTarget:self action:@selector(continuetonext) forControlEvents:UIControlEventTouchUpInside];
        [view1 addSubview:continuebtn];
    

    Where continuetonext is:

    -(void)continuetonext
    {
        GeneratePasswordVC *u = [[GeneratePasswordVC alloc]init];
        [self.navigationController pushViewController:u animated:YES];
    }
    
    0 讨论(0)
  • 2020-11-22 15:20

    Here you can create dynamically a UIButton:

    //For button image
    UIImage *closebtnimg = [UIImage imageNamed:@"close_btn.png"];
    //Custom type button
    btnclose = [[UIButton buttonWithType:UIButtonTypeCustom]retain];
    //Set frame of button means position
    btnclose.frame = CGRectMake(103, 257, 94, 32);
    //Button with 0 border so it's shape like image shape
    [btnclose.layer setBorderWidth:0];
    //Set title of button
    [btnclose setTitle:@"CLOSE" forState:UIControlStateNormal];
    [btnclose addTarget:self action:@selector(methodname:) forControlEvents:UIControlEventTouchUpInside];
    //Font size of title
    btnclose.titleLabel.font = [UIFont boldSystemFontOfSize:14];
    //Set image of button
    [btnclose setBackgroundImage:closebtnimg forState:UIControlStateNormal];
    
    0 讨论(0)
  • 2020-11-22 15:20
    UIButton *btnname = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    
    [btnname setTitle:@"Click Me" forState:UIControlStateNormal];
    
    btnname.frame = CGRectMake(10, 10, 100, 140);
    
    [self.view addSubview:btnname];
    
    0 讨论(0)
  • 2020-11-22 15:22

    'action:@selector(aMethod:)' write method like this :

    - (void)aMethod:(UIButton*)button
       {
             NSLog(@"Button  clicked.");
      }
    

    It works for me. Thanks. KS.

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