Xamarin.iOS のボタン
iOS では、UIButton
クラスはボタン コントロールを表します。
ボタンのプロパティは、プログラムまたは Xcode の Interface Builder を使用して変更できます。
プログラムによるボタンの作成
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();
};
Note
使用可能なボタン イベントは、TouchUpInside
だけではありません。 UIButton
は、さまざまなイベントを定義する UIControl
の子クラスです。
ボタンのスタイル設定
UIButton
コントロールは、UIControlState
値でそれぞれ指定されるさまざまな状態 (Normal
、Disabled
、Focused
、Highlighted
など) で存在できます。各状態には、プログラムまたは iOS デザイナーで指定された一意のスタイルを指定できます。
Note
すべての 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
の状態) のいずれかとしてレンダリングされます。
カスタム ボタンの操作の詳細については、「ボタンに画像を使用する」レシピを参照してください。