iPhoneアプリ開発の虎の巻
HOME > UIButton

UIButton

UIButtonクラスは、ボタンを管理するクラスです。

UIButtonのクラス階層

NSObjectUIResponderUIViewUIControl ↑ UIButton

ボタンの生成

//生成
UIButton *btn = [UIButton buttonWithType:ボタンタイプ名];
btn.frame = CGRectMake(0, 0, 50, 30);

※ボタンタイプがRoudedRectまたはCustomの場合は、
frameプロパティにてサイズを指定しないと表示されません。

【ボタンのタイプ】
ボタンタイプ名 ボタンイメージ
UIButtonTypeRoudedRect UIButtonTypeRoudedRect
UIButtonTypeContactAdd UIButtonTypeContactAdd
UIButtonTypeDetailDisclosure UIButtonTypeDetailDisclosure
UIButtonTypeInfoLight UIButtonTypeInfoLight UIButtonTypeInfoLight
UIButtonTypeInfoDark UIButtonTypeInfoDark UIButtonTypeInfoLight
UIButtonTypeCustom 自作ボタン
(画像や背景色を指定して自作します。)

UIButtonのプロパティ

【UIButtonの主要プロパティ】
プロパティ名/型 読専 説明
font
UIFont
フォントを設定する
(例)btn.font =
   [UIFont systemFontOfSize:[UIFont systemFontSize]];
※この書き方は非推奨になりました。(下記例文参照)
buttonType
(UIButtonType)
ボタンタイプを取得する
※ボタンタイプは上記表【ボタンのタイプ】をご覧ください。
currentTitle
NSString
ボタンのタイトルを取得する
currentTitleColor
UIColor
ボタンのタイトルの色を取得する
currentBackgroundImage
UIImage
ボタンの背景画像を取得する
currentImage
UIImage
ボタンの画像を取得する

主要なプロパティのみ掲載しています。
 上記「UIButtonのクラス階層」にあるクラスのプロパティも使用できます。

UIButtonのメソッド

【UIButtonの主要メソッド】
メソッド 説明
-(void)setTitle:(NSSTring *)title forState:(UIControlState)state ボタンのタイトルをセットする
※下記「例1」を参照
-(void)setTitleColor:(UIColor *)color forState:(UIControlState)state ボタンのタイトル色をセットする
※下記「例2」を参照
-(void)setImage:(UIImage *)image forState:(UIControlState)state ボタンに表示する画像をセットする
-(void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state ボタンの背景画像をセットする

主要なメソッドのみ掲載しています。
 上記「UIButtonのクラス階層」にあるクラスのメソッドも使用できます。

ボタンには、下記stateの種類にあるようにいくつかの状態があり、それぞれの状態ごとにタイトル名や色などを設定することができます。

【stateの種類】
state 説明
UIControlStateNormal ボタンが有効な時(通常の状態)
UIControlStateHighlighted ボタンがハイライトの時
(ボタンが触られている間の状態)
UIControlStateDisabled ボタンが無効な時(Disable状態)
//例1 ボタン名称設定
[btn setTitle:@"ボタン" forState:UIControlStateNormal]; //有効時
[btn setTitle:@"ハイライト!" forState:UIControlStateHighlighted]; //ハイライト時
[btn setTitle:@"無効!" forState:UIControlStateDisabled]; //無効時
//例2 ボタン名称の色設定
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; //有効時
[btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; //ハイライト時
[btn setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled]; //無効時

UIButton例文

// 標準ボタン例文
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(10, 10, 100, 30);
[btn setTitle:@"押してね" forState:UIControlStateNormal];
[btn setTitle:@"ぽち" forState:UIControlStateHighlighted];
[btn setTitle:@"押せません" forState:UIControlStateDisabled];
// ボタンがタッチダウンされた時にhogeメソッドを呼び出す
[btn addTarget:self action:@selector(hoge:)
     forControlEvents:UIControlEventTouchDown];
[self.view addSubview:btn];
// 画像を指定したボタン例文
UIImage *img = [UIImage imageNamed:@"hoge.png"];  // ボタンにする画像を生成する
UIButton *btn = [[[UIButton alloc] 
    initWithFrame:CGRectMake(0, 0, 60, 30)] autorelease];  // ボタンのサイズを指定する
[btn setBackgroundImage:img forState:UIControlStateNormal];  // 画像をセットする
// ボタンが押された時にhogeメソッドを呼び出す
[btn addTarget:self
    action:@selector(hoge:) forControlEvents:UIControlEventTouchUpInside];

イベントの種類については、UIControlページの「イベント」欄をご覧ください。

// 呼ばれるhogeメソッド
-(void)hoge:(UIButton*)button{
    // ここに何かの処理を記述する
    // (引数の button には呼び出し元のUIButtonオブジェクトが引き渡されてきます)
}

NormalButton HighlitedButton DisabledButton

//フォントを設定する
[btn.titleLabel setFont:[UIFont systemFontOfSize:24]];
totop