Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In iOS, the UIButton class represents a button control.
A button's properties can be modified either programmatically or with Xcode's Interface Builder.
Creating a button programmatically
A UIButton can be created with only a few lines of code.
Instantiate a button and specify its type:
UIButton myButton = new UIButton(UIButtonType.System);The button's type is specified by a
UIButtonTypeproperty:UIButtonType.System- A general-purpose buttonUIButtonType.DetailDisclosure- Indicates the availability of detailed information, usually about a specific item in a tableUIButtonType.InfoDark- Indicates the availability of configuration information; dark-coloredUIButtonType.InfoLight- Indicates the availability of configuration information; light-coloredUIButtonType..AddContact- Indicates that a contact can be addedUIButtonType.Custom- Customizable button
For more information about the different button types, take a look at:
- The Custom button types section of this document
- The Button types recipe
- Apple's iOS Human Interface Guidelines.
Define the button's size and position:
myButton.Frame = new CGRect(25, 25, 300, 150);Set the button's text. Use the
SetTitlemethod, which requires the text and aUIControlStatevalue for button state:myButton.SetTitle("Hello, World!", UIControlState.Normal);The button's state types are listed below:
UIControlState.NormalUIControlState.HighlightedUIControlState.DisabledUIControlState.SelectedUIControlState.FocusedUIControlState.ApplicationUIControlState.Reserved
For more information about styling a button and setting its text, refer to:
- The Styling a button section of this document
- The Set button text recipe.
Handling a button tap
To respond to a button tap, provide a handler for the button's
TouchUpInside event:
myButton.TouchUpInside += (sender, e) => {
DoSomething();
};
Note
TouchUpInside is not the only available button event. UIButton is a
child class of UIControl, which defines
many different events.
Styling a button
UIButton controls can exist in a number of different states, each
specified by a UIControlState value – Normal, Disabled,
Focused, Highlighted, etc. Each state can be given a unique style,
specified programmatically or with the iOS Designer.
Note
For a complete list of all UIControlState values, take a look at the
UIKit.UIControlState enumeration
documentation.
For example, to set the title color and shadow color for
UIControlState.Normal:
myButton.SetTitleColor(UIColor.White, UIControlState.Normal);
myButton.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);
The following code sets the button title to an attributed (stylized) string
for UIControlState.Normal and UIControlState.Highlighted:
var normalAttributedTitle = new NSAttributedString(buttonTitle, foregroundColor: UIColor.Blue, strikethroughStyle: NSUnderlineStyle.Single);
myButton.SetAttributedTitle(normalAttributedTitle, UIControlState.Normal);
var highlightedAttributedTitle = new NSAttributedString(buttonTitle, foregroundColor: UIColor.Green, strikethroughStyle: NSUnderlineStyle.Thick);
myButton.SetAttributedTitle(highlightedAttributedTitle, UIControlState.Highlighted);
Custom button types
Buttons with a UIButtonType of Custom have no default styles. However,
it's possible to configure the button's appearance by setting an image for
its different states:
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand.png"), UIControlState.Normal);
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand_Highlight.png"), UIControlState.Highlighted);
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand_On.png"), UIControlState.Selected);
Depending on whether the user is touching the button or not, it will
render as one of the following images (UIControlState.Normal,
UIControlState.Highlighted and UIControlState.Selected states,
respectively):

For more information about working with custom buttons, refer to the Use an image for a button recipe.