首页 > 代码库 > IOS-UITableView编辑模式示例
IOS-UITableView编辑模式示例
概要
本示例实在上篇文章的基础上的例子修改过来的,主要是简示了UITableView的编辑模式的使用,包括状态改变、移动行、删除行。
运行结果
过程概要
见代码及注释,不难
主要代码
h文件
// // CityViewController.h // NatTab // // Created by God Lin on 14/12/7. // Copyright (c) 2014年 arbboter. All rights reserved. // #import <UIKit/UIKit.h> @interface CityViewController : UIViewController <UITabBarDelegate, UITableViewDataSource> { NSMutableArray* _arrayName; UITableView* _tableView; } @property (nonatomic, retain) NSMutableArray* _arrayName; @property (nonatomic, retain) UITableView* _tableView; @end
m文件
// // CityViewController.m // NatTab // // Created by God Lin on 14/12/7. // Copyright (c) 2014年 arbboter. All rights reserved. // #import "CityViewController.h" @interface CityViewController () @end @implementation CityViewController @synthesize _arrayName; @synthesize _tableView; #pragma UITableViewDelegate - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; } #pragma UITableViewDataSource - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self._arrayName count]; } // 插入删除 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { [self._arrayName removeObjectAtIndex:indexPath.row]; [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; } else if (editingStyle == UITableViewCellEditingStyleInsert) { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view } } // 移动 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { NSString* fromObj = [self._arrayName objectAtIndex:sourceIndexPath.row]; [self._arrayName insertObject:fromObj atIndex:destinationIndexPath.row]; [self._arrayName removeObjectAtIndex:sourceIndexPath.row]; } - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell* cell = nil; static NSString *CellIdentifier = @"Cell"; cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; } NSString* iconStr = [NSString stringWithFormat:@"animal_%u.png", arc4random()%17+1]; cell.imageView.image = [UIImage imageNamed:iconStr]; cell.textLabel.text = [self._arrayName objectAtIndex:indexPath.row]; return cell; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (void)viewDidLoad { [super viewDidLoad]; // Uncomment the following line to preserve selection between presentations. // self.clearsSelectionOnViewWillAppear = NO; // Uncomment the following line to display an Edit button in the navigation bar for this view controller. self.navigationItem.rightBarButtonItem = self.editButtonItem; CGRect viewRect = self.view.frame; self._tableView = [[UITableView alloc] initWithFrame:viewRect]; self._tableView.delegate = (id)self; self._tableView.dataSource = self; [self.view addSubview:self._tableView]; self._arrayName = [[NSMutableArray alloc] init]; } - (void)setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; [self._tableView setEditing:editing animated:animated]; } - (void)viewWillAppear:(BOOL)animated { int nRow = arc4random()%50+20; NSString* str = nil; [self._arrayName removeAllObjects]; for (int i=0; i<nRow; i++) { str = [NSString stringWithFormat:@"%@_%c%c%c%c", self.title, arc4random()%26+'a',arc4random()%26+'a',arc4random()%26+'a',arc4random()%26+'a']; [self._arrayName addObject:str]; } // 刷新数据 [self._tableView reloadData]; } - (void)didReceiveMemoryWarning { [_arrayName release]; [_tableView release]; [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
工程代码
IOS-UITableView编辑模式示例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。