UIButton : How to create a UIButton Programmatically

Sample Code:

// Set a method for this

-(void) addButtonWithFrame :(CGRect ) btnFrame  andName: (NSString *) titleName

{

UIButton *addButton = [UIButton buttonWithType: UIButtonTypeCustom];

// (Value = 0) means NO Button Style.

/* iOS Library provide more Types of UIButton , like

  1. UIButtonTypeRoundedRect (Value = 1), Means a Rounded-Rectangle Style
  2. UIButtonTypeDetailDisclosure (Value = 2), Means a Details Disclosure Button
  3. UIButtonTypeInfoLight (Value = 3), Means an Information button with light background
  4. UIButtonTypeInfoDark (Value = 4), Means an Information Button with dark background
  5. UIButtonTypeContactAdd (Value = 5), Means a contact add button.

You can choose any one of them. */

//Set Button Frame

addButton.frame = btnFrame;

//Set Tag

addButton.tag = cnt; //cnt = 0,1,2…..so on.

// Set Title

[addButton setTitle : titleName forState: UIControlSateNormal];

//If you want to user touch and title highlighted, changes the state like :

// [addButton setTitle : titleName forState: UIControlStateHighlighted];

//Set Title Color

[addButton setTitileColor: [UIColor darkGrayColor] forState: UIControlStateNormal];

//Set Font

addButton.titleLabel.font = [UIFont fontWithName: @ “FontName” size:14 ];

or

addButton.titleLabel.font = [UIFont systemFontOfSize:14];

//Set Image

[addButton setImage:[UIImage imageNamed:@ “ImageName_Normal”] forState: UIControlStateNormal];

[addButton setImage:[UIImage imageNamed:@ “ImageName_Highlighted”] forState: UIControlStateHighlighted];

// Set Background Image

[addButton setBackgroundImage:[UIImage imageNamed:@ “ImageNormal.png”] forState: UIControlStateNormal];// highlighted

[addButton setBackgroundImage:[UIImage imageNamed:@ “ImageHighlighted.png”] forState: UIControlStateHighlighted];

// Set your custom Image, means add a ImageView on Button

UIImageView *myImageView = [[UIImageView alloc] initWithFrame: CGRectMake( 0,0, btnFrame.frame.size.width, btnFrame.frame.size.height)];

myImageView.image = [UIImage imageNamed: @ “Image.png”];

[addButton addSubview: myImageView];

[myImageView release];

// Other way to set Image highlighted and normal with Strechable Image

UIImage *normalImage = [UIImage imageNamed:@ “normalImage.png”];

UIImage *strechableNormalImage = [normalImage stretchableImageWithLeftCapWidth: 14 topCapHeight: 0];

[addButton setBackgroundImage: strechableNormalImage forState: UIControlStateNormal];

UIImage *highlightedImage = [UIImage imageNamed:@ “highlightedImage.png”];

UIImage *strechableHighlightedImage = [highlightedImage  stretchableImageWithLeftCapWidth: 14 topCapHeight: 0];

[addButton setBackgroundImage: strechableHighlightedImage forState: UIControlStateHighlighted];

//Set Line Break Mode

addButton.titleLabel.lineBreakMode = UILineBreakModeTrailTruncation;

// Set Border Layer border Width and Color

// First you import and add QuartzCore Framework

addButton.layer.borderWidth = 2.0f;

addButton.layer.borderColor = [UIColor blackColor].cgcolor;

// setRadius Corner

addButton.layer.radiusCorner = 9.0f;

// Set Action on Button

[addButton addTarget: self  action:@selector(clickOnButtons:) forControlEvents: UIControlEventTouchUpInside];

// Add to SubView  

[self.view addSubview: addButton];

}

//Calling Method

[self addButtonWithFrame:CGRectMake(20,20,120,30) andName:@ “Close”];

Or

CGRect rect;

rect = CGRectMake (20,20,120,30);

NSString *btnName = @ “Close”;

[self addButtonWithFrame:rect andName:btnName];

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s