UIButtonをコードで実装する

いつも補完機能に頼りっぱなしなので、RoundedRectボタンをコードで実装する方法をカキコ。

UIButton *bt = [UIButton buttonWithType:UIButtonTypeRoundedRect];// A
bt.frame = CGRectMake(200, 40, 40, 40); // B
[bt setTitle:@"get" forState:UIControlStateNormal];//C
[bt addTarget:self action:@selector(getValue) forControlEvents:UIControlEventTouchUpInside];//D
[self.view addSubview:bt]; //E
  • A bottunWithTypeにてボタンのタイプを設定します。

 UIButtonTypeRoundedRect もしくは custom をよく使います。

  • B ここではボタンの大きさと表示位置を設定しています。

 CGRectMakeメソッドでframe情報を作成。
 それぞれの引数は
   -第一引数 ボタンの左上角の横位置
   -第二引数 ボタンの左上角の縦位置
   -第三引数 ボタンの横幅
   -第四匹数 ボタンの高さ
 となっている。

  • C ボタンのtitleをセット

forstate:UIControlStateNormalはボタンを押さなくてもタイトルを表示(通常はこれ)
forstat:UIControlStateHighlighted は、ボタンを押している間だけタイトルを表示

  • D ボタンにメソッドを割り当てる

@selectorについて
  @selector(method)だと引き数なし
  引数があるメソッドは@selector(method:)

 forControlEventsはボタンのイベント
 -UIControlEventTouchupInsideはボタンが押されて、離した指がボタンの座標の範囲内であった場合に呼ばれるイベント
 -UIControlEventTouchDown はボタンが押されたときに呼ばれるイベント
 その他、UIControlEventTouchUpOutSideなどある