¿Cómo creo un UIButton básico mediante progtwigción?

¿Cómo puedo crear un UIButton básico UIButton progtwigción? Por ejemplo, en mi controlador de vista, al ejecutar el método viewDidLoad , se UIButton tres UIButton s dinámicamente y se establecerá su diseño o propiedades.

Aquí hay uno:

 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]; 
 - (void)viewDidLoad { [super viewDidLoad]; [self addMyButton]; // Call add button method on view load } - (void)addMyButton{ // Method for creating button, with background image and other properties UIButton *playButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; playButton.frame = CGRectMake(110.0, 360.0, 100.0, 30.0); [playButton setTitle:@"Play" forState:UIControlStateNormal]; playButton.backgroundColor = [UIColor clearColor]; [playButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal ]; UIImage *buttonImageNormal = [UIImage imageNamed:@"blueButton.png"]; UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0]; [playButton setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal]; UIImage *buttonImagePressed = [UIImage imageNamed:@"whiteButton.png"]; UIImage *strechableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0]; [playButton setBackgroundImage:strechableButtonImagePressed forState:UIControlStateHighlighted]; [playButton addTarget:self action:@selector(playAction:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:playButton]; } 

C objective

 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); } 

Rápido

  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 y superior

  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)") } 

Para agregar un botón programáticamente a la vista de su controlador, use lo siguiente:

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

Para agregar tres de estos, enjuague y repita.

Aquí puedes crear dinámicamente un 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]; 

Vamos, es 2014! ¿Por qué no se está utilizando todavía la asignación de evaluación de bloques de código , ya que las tendencias muestran que es el futuro!

 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!

O los resultados exactos se pueden lograr como tales:

 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]; 

Método de escritura 'action:@selector(aMethod:)' como este:

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

Esto funciona para mi. Gracias. KANSAS.

C objective

 // Create the Button with RoundedRect type UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; // instend of "Click Me" you can write your own message/Label [mybutton setTitle:@"Click Me" forState:UIControlStateNormal]; // create the Rectangle Frame with specified size mybutton.frame = CGRectMake(10, 10, 300, 140); // x,y,width,height [self.view addSubview:mybutton];// add button to your view. 

Rápido

 let button = UIButton(type: UIButtonType.System) as UIButton button.frame = CGRectMake(100, 100, 100, 50) button.backgroundColor = UIColor.greenColor() button.setTitle("Test Button", forState: UIControlState.Normal) self.view.addSubview(button) 

intente este código para crear un botón y repítalo 2 veces más con diferentes coordenadas y se llama al método (myButtonClick) cuando se presiona el botón

 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); } 

Simplemente puede colocar la instancia de creador dentro de un bucle y agregar dinámicamente los nombres de una matriz, si lo desea.

Mira este código:

 CGRect frameimg = CGRectMake(15, 46, 55,70); UIButton *SelectionButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; SelectionButton.frame=frameimg; SelectionButton.tag=i; [SelectionButton setTitle:[SelectionArray objectAtIndex:0] forState:UIControlStateNormal]; [SelectionButton addTarget:self action:@selector(BtnSelected:) forControlEvents:UIControlEventTouchUpInside]; [SelectionButton.titleLabel setFont:[UIFont boldSystemFontOfSize:12.0]]; SelectionButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; SelectionButton.titleLabel.numberOfLines = 2; SelectionButton.titleLabel.textAlignment = NSTextAlignmentCenter; [SelectionButton setTitleColor:[UIColor grayColor] forState:(UIControlStateNormal)]; [SelectionButton setTitleColor:[UIColor blueColor] forState:UIControlStateSelected]; [SelectionButton setShowsTouchWhenHighlighted:YES]; [self.view addSubview:SelectionButton]; 

Espero que encuentres útil este código.

 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button addTarget:self action:@selector(aMethod:) forControlEvents:UIControlEventTouchUpInside]; [button setTitle:@"Show View" forState:UIControlStateNormal]; button.frame = CGRectMake(10.0, 100.0, 300.0, 20.0); [self.view addSubview:button]; 
 -(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; } 

y puedes agregarlo a la vista:

 [self.view addSubview:[self addButton:nil :self.view.frame :@selector(btnAction:) :[UIImage imageNamed:@"img.png"] :1]]; 
 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]; 

Este también es un ejemplo para crear tres botones. Solo mueve su ubicación.

 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]; 

Puede crear un botón con este código.

  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]; 

Aquí está el método de acción del botón

  -(void)btnAction { NSLog(@"button clicked"); } 

Para Swift 2.0:

 let btnObject : UIButton = UIButton() btnObject.frame = CGRect(x: 8, y: 89, width: 70, height: 22) btnObject.titleLabel?.font = UIFont(name: "Helvetica Neue", size: 13) btnObject.titleLabel?.textColor = UIColor.whiteColor() btnObject.backgroundColor = UIColor(red: 189/255, green: 176/255, blue: 0/255, alpha: 1) btnObject.titleLabel?.textAlignment = NSTextAlignment.Center btnObject.addTarget(self, action: "btnbtnObjectClick:", forControlEvents: UIControlEvents.TouchUpInside) subView.addSubview(btnObject) 

Para crear UIButton programmatically podemos crear tanto en objective c como en 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) 

Método de acción UIButton

 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 ........ } 

C OBJETIVO

 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]; 

Método de acción UIButton

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

La captura de pantalla de salida es

enter image description here

enter image description here

 -(void)addStuffToView { UIButton *aButton = [[UIButton alloc] initWithFrame:CGRectMake(20, 20, 20, 20)]; //(x, y, width, height of button on screen [aButton setTitle:@"Button" forState:UIControlStateNormal];//puts the text on the button aButton.titleLabel.font = somefont;//sets the font if one is already stated aButton.titleLabel.font = [UIFont fontWithName:@"Arial-MT" size:12];//sets the font type and size [aButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];//see back method below [aButton setBackgroundImage:[UIImage imageNamed:@"someImage.png"] forState:UIControlStateNormal];//sets the image of the button [self.view addSubview:back]; } -(void)back { UIAlertView *alert = [[UIAlertView alloc]initWithTitle.....] } -(void)viewDidLoad { [super viewDidLoad]; [self addStuffToView];//adds all items built in this method to the view } 

Para Swift 2.2 (con el con la nueva statement “selector”).

 let btn = UIButton(type: UIButtonType.System) as UIButton btn.frame = CGRectMake(0, 0, 100, 20) // set any frame you want btn.setTitle("MyAction", forState: UIControlState.Normal) btn.addTarget(self, action: #selector(MyClass.myAction(_:)), forControlEvents: UIControlEvents.TouchUpInside) self.view.addSubview(btn) func myAction(sender:UIButton!){ // Some action } 

Puedes implementarlo en tu Método ViewDidLoad :

 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]; 

Donde continuetonext es:

 -(void)continuetonext { GeneratePasswordVC *u = [[GeneratePasswordVC alloc]init]; [self.navigationController pushViewController:u animated:YES]; } 

A partir de Swift 3, se han realizado varios cambios a la syntax.

Así es como crearías un botón básico a partir de 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) 

Estos son los cambios que se han realizado desde versiones anteriores de 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) 

Intentalo….

 UIButton *finalPriceBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect]; finalPriceBtn.frame=CGRectMake(260, 25, 45, 15); [finalPriceBtn addTarget:self action:@selector(goBtnClk:) forControlEvents:UIControlEventTouchUpInside]; finalPriceBtn.titleLabel.font=[UIFont systemFontOfSize:12]; [finalPriceBtn setTitle:[NSString stringWithFormat:@"$%.2f",tempVal] forState:UIControlStateNormal]; finalPriceBtn.titleLabel.textColor = [UIColor colorWithRed: 2.0f/255.0f green: 155.0f/255.0f blue: 213.0f/255.0f alpha:1]; finalPriceBtn.titleLabel.textAlignment=UITextAlignmentLeft; [imageView addSubview:finalPriceBtn]; 

Espero que haya ayudado.

 UIButton *custombutton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [custombutton addTarget:self action:@selector(aMethod:) forControlEvents:UIControlEventTouchUpInside]; [custombutton setTitle:@"Click" forState:UIControlStateNormal]; custombutton.frame = CGRectMake(80.0, 110.0, 160.0, 40.0); custombutton.titleLabel.textColor = [UIColor colorWithRed: 2.0f/255.0f green: 155.0f/255.0f blue: 213.0f/255.0f alpha:1]; [custombutton setImage:[UIImage imageNamed:@"hh.png"] forState:UIControlStateNormal]; [view addSubview:custombutton]; 

Para Swift 3 (código aún más corto)

 let button = UIButton(type: UIButtonType.custom) button.frame = CGRect(x: 0, y: 0, width: 200.0, height: 40.0) button.addTarget(nil, action: #selector(tapButton(_:)), for: UIControlEvents.touchUpInside) button.tintColor = UIColor.white button.backgroundColor = UIColor.red button.setBackgroundImage(UIImage(named: "ImageName"), for: UIControlState.normal) button.setTitle("MyTitle", for: UIControlState.normal) button.isEnabled = true func tapButton(sender: UIButton) { } 

La versión Swift3 debería ser

 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 }() 
 UIButton *buttonName = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [buttonName addTarget:self action:@selector(aMethod:)forControlEvents:UIControlEventTouchDown]; [buttonName setTitle:@"Show View" forState:UIControlStateNormal]; .frame = CGRectMake(80.0, 210.0, 160.0, 40.0); [view addSubview:buttonName]; 
 UIButton *btnname = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [btnname setTitle:@"Click Me" forState:UIControlStateNormal]; btnname.frame = CGRectMake(10, 10, 100, 140); [self.view addSubview:btnname]; 
 UIButton * tmpBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [tmpBtn addTarget:self action:@selector(clearCart:) forControlEvents:UIControlEventTouchUpInside]; tmpBtn.tag = k; tmpBtn.frame = CGRectMake(45, 0, 15, 15); [tmpBtn setBackgroundImage:[UIImage imageNamed:@"CloseButton.png"] forState:UIControlStateNormal]; [self.view addSubview:tmpBtn]; 

prueba esto:

primero escribe esto en tu archivo .h de viewcontroller

 UIButton *btn; 

Ahora escribe esto en tu archivo .m de 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 progtwigtically [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; 

escriba esto fuera del método viewDidLoad en el archivo .m de su controlador de vista

 - (IBAction)btnClicked:(id)sender { //Write a code you want to execute on buttons click event }