次の方法で共有


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 - カスタマイズ可能なボタン

    さまざまなボタンの種類の詳細については、以下を参照してください。

  • ボタンのサイズと位置を定義します。

    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 値でそれぞれ指定されるさまざまな状態 (NormalDisabledFocusedHighlighted など) で存在できます。各状態には、プログラムまたは iOS デザイナーで指定された一意のスタイルを指定できます。

Note

すべての UIControlState 値の完全な一覧については、UIKit.UIControlState enumerationに関するドキュメントをご覧ください。

たとえば、UIControlState.Normal のタイトルの色と影の色を設定するには:

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

次のコードでは、ボタンのタイトルが、UIControlState.NormalUIControlState.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.HighlightedUIControlState.Selected の状態) のいずれかとしてレンダリングされます。

UIControlState.NormalUIControlState.HighlightedUIControlState.Selected

カスタム ボタンの操作の詳細については、「ボタンに画像を使用する」レシピを参照してください。