Skip to content

Instantly share code, notes, and snippets.

@himaratsu
Last active August 29, 2015 14:04
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save himaratsu/2d32ed2fb1044974f2a3 to your computer and use it in GitHub Desktop.
Save himaratsu/2d32ed2fb1044974f2a3 to your computer and use it in GitHub Desktop.
NS_ENUMを使って設定画面のtableviewをつくる

セルの種類をNS_ENUMで宣言する

typedef NS_ENUM(NSUInteger, PKSSettingCellType) {
    PKSSettingCellTypeHowToUse,     // 使い方
    PKSSettingCellTypeLicense,      // ライセンス
    PKSSettingCellTypeRequest,      // ご意見
    PKSSettingCellTypeVersion       // アプリバージョン
};
  • enumではなくてNS_ENUMなのは?
    • switch文と組み合わせた時、NS_ENUMだと抜けてる値があったらwarning出してくれる
    • 詳しくは→ ここのリンクの「NS_ENUMとNS_OPTIONS」章を参考

テーブルの構築の部分ではNS_ENUMをつかって宣言

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

    NSString *labelStr = @"";
    
    switch (indexPath.row) {
        case PKSSettingCellTypeHowToUse:
            labelStr = @"使い方";
            break;
        case PKSSettingCellTypeLicense:
            labelStr = @"ライセンス";
            break;
        case PKSSettingCellTypeRequest:
            labelStr = @"ご意見・ご要望";
            break;
        case PKSSettingCellTypeVersion:
            labelStr = @"アプリのバージョン";
            break;
    }
    
    cell.textLabel.text = labelStr;
    
    return cell;
}

こうすると

  • あとでセルの順番を入れ替えたくなったとき、NS_ENUMの方をいじるだけで良い。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment