UITableViewめも
Basicly editeble UITable
- editable
- add
- delete
source
ViewController.h
を追記してtable関連の関数を処理できるようにする
... @interface ViewController : UIViewController <UITableViewDelegate,UITableViewDataSource> ...
ViewController.m
#import "ViewController.h" #import "TACell.h" #import <QuartzCore/QuartzCore.h> @interface ViewController (){ NSMutableArray *items; } @property (weak, nonatomic) IBOutlet UITableView *myTableView; @property (weak, nonatomic) IBOutlet UIButton *plusButton; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //テーブル関連 items = [NSMutableArray array]; [items addObject:@"うんこ"]; [items addObject:@"べんぴ"]; [items addObject:@"うんこ2"]; _myTableView.delegate = self; _myTableView.dataSource = self; [_myTableView registerNib:[UINib nibWithNibName:NSStringFromClass([TACell class]) bundle:nil] forCellReuseIdentifier:@"cell"]; //ボタンデザイン関連 [[_plusButton layer] setBorderColor:[[UIColor blackColor] CGColor]]; [[_plusButton layer] setBorderWidth:1.0]; [[_plusButton layer] setCornerRadius:10.0]; [_plusButton setClipsToBounds:YES]; } //ボタン:編集ボタン - (IBAction)editButtonClicked:(id)sender { if (_myTableView.editing){ [_myTableView setEditing:NO animated:YES]; } else { [_myTableView setEditing:YES animated:YES]; } } //ボタン:追加ボタン - (IBAction)addButtonClicked:(id)sender { // push :addIndex = 0; // unshift :addIndex = items.count; int addIndex = 0; [items insertObject:@"New!!" atIndex:addIndex]; NSIndexPath *indexPath = [NSIndexPath indexPathForRow:addIndex inSection:0]; NSArray *indexPaths = [NSArray arrayWithObjects:indexPath,nil]; [_myTableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop]; } // テーブル関連の処理 //テーブル:ヘッダー - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ return @"データ1 データ2 データ3"; } //テーブル:セクション数 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } //テーブル:行数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section { return items.count; } //テーブル:編集可能か? -(BOOL)tableView:(UITableView*)tableView canEditRowAtIndexPath:(NSIndexPath*)indexPath { return YES; } //テーブル:データ生成 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath{ TACell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; if (cell == nil) { // yes NSLog(@"null"); } cell.titleLabel.text = [NSString stringWithFormat:@"%@", items[indexPath.row]]; NSLog(@"make %d",indexPath.row); NSLog(@"%@", items[indexPath.row]); return cell; } // テーブル:削除を押した時の処理 -(void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete){ // 配列を削除 [items removeObjectAtIndex:indexPath.row]; // UITableView から削除 [_myTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } }