objective-c iOS で簡単にチェックボックス

問題

iOSの標準コントロールには、「チェクボックス」コントロールがありません。

解決策

サブクラスを作りだしてしまいそうなところですが、UIControlにはselectedプロパティがあり、UISwitchのようなチェックボックスに欲しい振る舞いは、実はUIControlに実装されていました。

ということで、UIButtonでチェックボックスを作ると非常に簡単です。

まず、ON/OFF 用の画像を用意し、UIButtonに設定します。

UIButton *checkbox = [[UIButton alloc]initWithFrame:CGRectMake(2,2,14,14)];
[checkBox setImage:[UIImage imageNamed:@"checkbox_off.png"] forState:UIControlStateNormal];
[checkBox setImage:[UIImage imageNamed:@"checkbox_on.png"] forState:UIControlStateSelected];
[view addSubview:checkBox];

そして、タップ時に、

checkbox.selected = !checkbox.selected;

これで、チェックボックス完成ですV