Кнопки в Xamarin.iOS

В iOS UIButton класс представляет элемент управления кнопкой.

Свойства кнопки можно изменять программным способом или с помощью построителя интерфейсов Xcode.

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

Можно UIButton создать только с несколькими строками кода.

  • Создайте экземпляр кнопки и укажите его тип:

    UIButton myButton = new UIButton(UIButtonType.System);
    

    Тип кнопки указывается свойством UIButtonType :

    • UIButtonType.System — кнопка общего назначения
    • UIButtonType.DetailDisclosure — Указывает доступность подробных сведений, как правило, о конкретном элементе в таблице
    • UIButtonType.InfoDark — указывает доступность сведений о конфигурации; темный цвет
    • UIButtonType.InfoLight — указывает доступность сведений о конфигурации; светлый цвет
    • UIButtonType..AddContact — Указывает, что можно добавить контакт
    • UIButtonType.Custom — настраиваемая кнопка

    Дополнительные сведения о различных типах кнопок см. в следующих сведениях:

  • Определите размер и позицию кнопки:

    myButton.Frame = new CGRect(25, 25, 300, 150);
    
  • Задайте текст кнопки. SetTitle Используйте метод, для которого требуется текст и UIControlState значение для состояния кнопки:

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

    Ниже перечислены типы состояний кнопки:

    • UIControlState.Normal
    • UIControlState.Highlighted
    • UIControlState.Disabled
    • UIControlState.Selected
    • UIControlState.Focused
    • UIControlState.Application
    • UIControlState.Reserved

    Дополнительные сведения о стилизации кнопки и настройке его текста см. в следующем разделе:

Обработка касания кнопки

Чтобы ответить на касание кнопки, укажите обработчик события кнопки TouchUpInside :

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

Примечание.

TouchUpInside не является единственным доступным событием кнопки. UIButton— дочерний класс, определяющий UIControlмножество различных событий.

Стилизация кнопки

UIButtonэлементы управления могут существовать в нескольких различных состояниях, каждый из которых указывается значением UIControlStateNormal, , Disabled, FocusedHighlightedи т. д. Каждое состояние можно задать уникальный стиль, указанный программным способом или с помощью конструктора iOS.

Примечание.

Полный список всех UIControlState значений см. в этой. UIKit.UIControlState enumeration Документации.

Например, чтобы задать цвет заголовка и цвет тени для UIControlState.Normal:

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

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

Пользовательские типы кнопок

Кнопки без UIButtonTypeCustom стилей по умолчанию. Однако можно настроить внешний вид кнопки, задав изображение для различных состояний:

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

В зависимости от того, касается ли пользователь кнопки или нет, он будет отображаться в виде одного из следующих изображений (UIControlState.NormalUIControlState.Highlightedи UIControlState.Selected состояний соответственно):

UIControlState.NormalUIControlState.HighlightedUIControlState.Selected

Дополнительные сведения о работе с настраиваемыми кнопками см . в разделе "Использование изображения для рецепта кнопки ".