Кнопки в Xamarin.iOSButtons in Xamarin.iOS

В iOS UIButton класс представляет элемент управления button.In iOS, the UIButton class represents a button control.

Свойства кнопки можно изменить программно или с помощью панели свойств из конструктора iOS:A button's properties can be modified either programmatically or with the Properties Pad of the iOS Designer:

Панели свойств в конструкторе iOSThe Properties Pad of the iOS Designer

Создание кнопки программным способомCreating a button programmatically

Объект UIButton могут создаваться с помощью всего нескольких строк кода.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);
    

    Тип кнопки задается UIButtonType:The button's type is specified by a UIButtonType:

    • UIButtonType.System -Кнопка общего назначенияUIButtonType.System - A general-purpose button
    • UIButtonType.DetailDisclosure — Указывает, доступности, содержащие подробную информацию, обычно о конкретного элемента в таблицуUIButtonType.DetailDisclosure - Indicates the availability of detailed information, usually about a specific item in a table
    • UIButtonType.InfoDark — Указывает доступность сведений о конфигурации; темныеUIButtonType.InfoDark - Indicates the availability of configuration information; dark-colored
    • UIButtonType.InfoLight — Указывает доступность сведений о конфигурации; СветлыйUIButtonType.InfoLight - Indicates the availability of configuration information; light-colored
    • UIButtonType..AddContact — Указывает, что можно добавить контактUIButtonType..AddContact - Indicates that a contact can be added
    • UIButtonType.Custom -Настраиваемую кнопкуUIButtonType.Custom - Customizable button

    Дополнительные сведения о различные типы кнопок взгляните на:For more information about the different button types, take a look at:

  • Определите размер и положение кнопки:Define the button's size and position:

    myButton.Frame = new CGRect(25, 25, 300, 150);
    
  • Задайте текст кнопки.Set the button's text. Используйте SetTitle метод, который должен отображаться текст и UIControlState значение:Use the SetTitle method, which requires the text and a UIControlState value:

    myButton.SetTitle("Hello, World!", UIControlState.Normal);
    

    Дополнительные сведения о Задание стиля кнопки и задание его текст см. в:For more information about styling a button and setting its text, refer to:

Обработка путем нажатия кнопкиHandling a button tap

Чтобы реагировать на них путем нажатия кнопки, можно создать обработчик для кнопки TouchUpInside событий:To respond to a button tap, provide a handler for the button's TouchUpInside event:

button.TouchUpInside += (sender, e) => {
    DoSomething();
};

Примечание

TouchUpInside не является событием доступно только кнопки.TouchUpInside is not the only available button event. UIButton является дочерний класс этого UIControl, который определяет различные события.UIButton is a child class of UIControl, which defines many different events.

Использовании конструктора iOS, чтобы указать обработчики событий для кнопкиUsing the iOS Designer to specify button event handlers

Используйте события вкладке панели свойств определить обработчики событий для кнопки различных событий.Use the Events tab of the Properties Pad to specify event handlers for a button's various events.

Для соответствующего события введите имя нового обработчика событий или выберите его из списка.For the appropriate event, either type the name of a new event handler or select one from the list. Это создаст обработчик событий в коде для контроллера представления кнопки.Doing this will create an event handler in the code for the button's view controller.

Вкладке "события" в панели свойствEvents tab of the Properties Pad

Задание стиля кнопкиStyling a button

UIButton элементы управления могут существовать в нескольких различных состояний, каждый указанных по UIControlState значение — Normal, Disabled, Focused, Highlightedи т. д. Каждое состояние можно предоставить уникальный стиль, указанный программно или с помощью конструктора iOS.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.

Примечание

Полный список всех UIControlState значения, взгляните на UIKit.UIControlState enumerationFor a complete list of all UIControlState values, take a look at the UIKit.UIControlState enumeration документация.documentation.

Например, чтобы задать цвет заголовка и цвет тени для UIControlState.Normal:For example, to set the title color and shadow color for UIControlState.Normal:

button.SetTitleColor(UIColor.White, UIControlState.Normal);
button.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);

Следующий код задает заголовок, кнопки строку с атрибутами (стилизованные) для UIControlState.Normal и UIControlState.Highlighted: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

Кнопки с UIButtonType из Custom не стили по умолчанию.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:

button4.SetImage (UIImage.FromBundle ("Buttons/MagicWand.png"), UIControlState.Normal);
button4.SetImage (UIImage.FromBundle ("Buttons/MagicWand_Highlight.png"), UIControlState.Highlighted);
button4.SetImage (UIImage.FromBundle ("Buttons/MagicWand_On.png"), UIControlState.Selected);

В зависимости от того, является ли пользователь касается кнопки или нет, он будет обрабатывать как один из следующих образов (UIControlState.Normal, UIControlState.Highlighted и 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):

UIControlState.Normal UIControlState.Highlighted UIControlState.SelectedUIControlState.Normal UIControlState.Highlighted UIControlState.Selected

Дополнительные сведения о работе с пользовательскими кнопками см использования изображения для кнопки рецепт.For more information about working with custom buttons, refer to the Use an image for a button recipe.