7764


出来ればStoryboard上でcheckboxを配置したいのですが、見当たりません。  
皆さんはiOSでcheckboxを作る時はどうしていますか？


CC BY-SA 3.0
2015-03-10T04:47:53.687
7692
2015-07-22T22:52:12.433
2015-04-18T12:44:49.497
8000
525
question
ios storyboard
iOSでチェックボックスの実装


正攻法なら、

  1. UITableViewを作成し、貼り付ける。 
  2. UITableViewCellのAccesoryTypeをCheckmarkとする。

こうなるんでしょうが、この目的のためだけに、テーブルビューを作るのは、コストが悪すぎます。さらに、チェックマークが、行頭でなく行末に付きますしね。  
お役に立てなそうで、すみません。


CC BY-SA 3.0
2015-03-10T05:38:31.507
7697
2015-03-10T05:38:31.507
7362
7692
answer


以前UIButtonで実装しました。  
ON/OFFに合わせて

[code]

    [self setImage:[UIImage imageNamed:@"XXX.png"] forState:UIControlStateNormal];
    
[/code]

で背景画像を変更します。  
画像を作らないといけませんが。。


CC BY-SA 3.0
2015-03-10T06:40:00.457
7707
2015-03-10T06:40:00.457
8772
7692
answer


UIControlStateに対応した画像とtouchに対応してselectの切り替えを実装して作りました。  
デフォルトで置いといて欲しいですね

[code]

    [_checkbox setImage:[UIImage imageNamed:@"checkbox_off.png"] forState:UIControlStateNormal];
    [_checkbox setImage:[UIImage imageNamed:@"checkbox_on.png"] forState:UIControlStateSelected];
    [_checkbox addTarget:self action:@selector(onCheckboxClick:) forControlEvents:UIControlEventTouchDown];
    
    
    -(void)onCheckboxClick:(UIButton*)button{
        _updateCheckbox.selected = !_updateCheckbox.selected;
    }
    
[/code]


CC BY-SA 3.0
2015-03-11T06:18:31.933
7764
2015-03-11T06:18:31.933
525
7692
answer


githubで探すといくつかでてきますね。

  * <https://github.com/Marxon13/M13Checkbox>
  * <https://github.com/bfeher/BFPaperCheckbox>

自前で作らずこれらを使うのも良いと思います。  
個人的にはiOS標準のUIではチェックボックスと同等の機能は、UISwitchで実現できるので、UISwitchを使います。クライアントから要望があったときも交渉してUISwitchで押します。

もしくは設定画面の場合、UITableViewを使うことが多いと思いますが、UITableViewCellを選択した時にaccessoryTypeにUITableViewCellAccessoryCheckmarkをセットするなどして対応します。


CC BY-SA 3.0
2015-03-30T02:45:52.823
8547
2015-03-30T02:45:52.823
8666
7692
answer


自分はこのビデオを参考に作りました  
<https://www.youtube.com/watch?v=ajlkFFPxW_c>

かなり応用が効く方法なので、いろいろなところで使っています（この動画はUIButtonga  
ベースですが、UIButtonじゃなくても可能です）

参考になればと思います


CC BY-SA 3.0
2015-07-22T22:52:12.433
12586
2015-07-22T22:52:12.433
403
7692
answer