UIButton
UIButtonクラスは、ボタンを管理するクラスです。
UIButtonのクラス階層
ボタンの生成
//生成
UIButton *btn = [UIButton buttonWithType:ボタンタイプ名];
btn.frame = CGRectMake(0, 0, 50, 30);
※ボタンタイプがRoudedRectまたはCustomの場合は、
frameプロパティにてサイズを指定しないと表示されません。
ボタンタイプ名 | ボタンイメージ |
---|---|
UIButtonTypeRoudedRect | |
UIButtonTypeContactAdd | |
UIButtonTypeDetailDisclosure | |
UIButtonTypeInfoLight | |
UIButtonTypeInfoDark | |
UIButtonTypeCustom | 自作ボタン (画像や背景色を指定して自作します。) |
UIButtonのプロパティ
プロパティ名/型 | 読専 | 説明 |
---|---|---|
font (UIFont) |
フォントを設定する (例)btn.font = [UIFont systemFontOfSize:[UIFont systemFontSize]]; ※この書き方は非推奨になりました。(下記例文参照) |
|
buttonType (UIButtonType) |
○ | ボタンタイプを取得する ※ボタンタイプは上記表【ボタンのタイプ】をご覧ください。 |
currentTitle (NSString) |
○ | ボタンのタイトルを取得する |
currentTitleColor (UIColor) |
○ | ボタンのタイトルの色を取得する |
currentBackgroundImage (UIImage) |
○ | ボタンの背景画像を取得する |
currentImage (UIImage) |
○ | ボタンの画像を取得する |
主要なプロパティのみ掲載しています。
上記「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 | 説明 |
---|---|
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オブジェクトが引き渡されてきます)
}
//フォントを設定する
[btn.titleLabel setFont:[UIFont systemFontOfSize:24]];