Кнопки в 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
— настраиваемая кнопка
Дополнительные сведения о различных типах кнопок см. в следующих сведениях:
- Раздел "Настраиваемые типы кнопок" этого документа
- Рецепт типов кнопок
- Рекомендации по пользовательскому интерфейсу Apple для iOS.
Определите размер и позицию кнопки:
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
элементы управления могут существовать в нескольких различных состояниях, каждый из которых указывается значением UIControlState
— Normal
, , Disabled
, Focused
Highlighted
и т. д. Каждое состояние можно задать уникальный стиль, указанный программным способом или с помощью конструктора 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);
Пользовательские типы кнопок
Кнопки без UIButtonType
Custom
стилей по умолчанию. Однако можно настроить внешний вид кнопки, задав изображение для различных состояний:
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.Normal
UIControlState.Highlighted
и UIControlState.Selected
состояний соответственно):
Дополнительные сведения о работе с настраиваемыми кнопками см . в разделе "Использование изображения для рецепта кнопки ".