お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【iOS】UISwitchを利用したUITableViewCellのカスタマイズ

こんばんは。mashiです。
今回はUISwitchを利用したUITableViewCellのカスタマイズについてです。
こんな感じ↓を目指していきたいと思います。
IMG_0726_02

IMG_0727_02

それでは、はじめます。

UISwitchの設定

UISwitchを用意します。

/*ViewController.h*/

@interface ViewController : UITableViewController
@property(nonatomic,strong) UISwitch *sw;
@end
/*ViewController.m*/

@implementation SettingViewController
@synthesize sw;



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     /*---------------------------------------*/

     sw = [[UISwitch alloc] initWithFrame:CGRectMake(1.0, 1.0, 20.0, 20.0)];
            sw.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"sw"];
            [sw addTarget:self
                         action:@selector(Switch_insert:)
               forControlEvents:UIControlEventValueChanged];
}
     /*---------------------------------------*/
@end

UISwitchの動作時


- (IBAction)Switch_insert:(UISwitch*)sender
{
     /*---------------------------------------*/

    if(sender.on){ 
    // スイッチONのとき
        [self.tableView beginUpdates];
        NSIndexPath* path = [NSIndexPath indexPathForRow:1 inSection:0];
        [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:path] withRowAnimation:UITableViewRowAnimationTop];
        [self.tableView endUpdates];
    }else{ 
    // スイッチOFFのとき
        [self.tableView beginUpdates];
        NSIndexPath* path = [NSIndexPath indexPathForRow:1 inSection:0];
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:path] withRowAnimation:UITableViewRowAnimationTop];
        [self.tableView endUpdates];
    }
}
     /*---------------------------------------*/

beginUpdates/endUpdatesの間にセルの追加・削除処理を記述します。
・スイッチON のとき:self.tableView insertRowsAtIndexPaths セルを追加します。
・スイッチOFFのとき:self.tableView deleteRowsAtIndexPaths セルを削除します。

今回はUITableViewCellのカスタマイズの一例として取り上げましたが、日頃からUITableViewに没頭する時間が多く、随時使えそうな機能についてはアップしていきたいと思います。

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00