iOS UI10_tableView的编辑

来源:互联网 发布:access2007数据库引擎 编辑:程序博客网 时间:2024/05/21 10:28
////  MainViewController.m//  UI10_tableView的编辑////  Created by dllo on 15/8/11.//  Copyright (c) 2015年 zhozhicheng. All rights reserved.//#import "MainViewController.h"@interface MainViewController ()<UITableViewDataSource,UITableViewDelegate>@property(nonatomic,retain)NSMutableArray *arr;@property(nonatomic,retain)UITableView *tableView;@end@implementation MainViewController-(void)dealloc{    [_arr release];    [_tableView release];    [super dealloc];}-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{    self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];    if (self) {        self.arr = [NSMutableArray arrayWithObjects:@"宋江", @"卢俊义", @"吴用", @"公孙胜", @"关胜", @"林冲", @"秦明" ,@"呼延灼" , @"花容",@"柴进", @"李应", @"朱仝",@"鲁智深",@"武松",nil];    }return self;}- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view.    self.navigationController.navigationBar.translucent=NO;    self.tableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64) style:UIControlStateNormal];    [self.view addSubview:self.tableView];    [self.tableView release];    self.tableView.delegate=self;    self.tableView.dataSource=self;    //编辑按钮    self.navigationItem.rightBarButtonItem=self.editButtonItem;//    //直接打开tableview的可编辑模式//    [self.tableView setEditing:YES animated:YES];}#pragma mark 重写系统的编辑按钮点击触发的方法-(void)setEditing:(BOOL)editing animated:(BOOL)animated{    [super setEditing:editing animated:animated];    [self.tableView setEditing:editing animated:YES];}#pragma mark 设置哪些行可以进行编辑-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{//    //奇数行可编辑,偶数不可以//    if (indexPath.row % 2 == 1) {//        return YES;//    }else{//        return NO;//    }    return YES;}//删除-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{    return UITableViewCellEditingStyleDelete;}//删除数据-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{    if (editingStyle == UITableViewCellEditingStyleDelete) {        //先删除数据源        [self.arr removeObjectAtIndex:indexPath.row];//        [self.tableView reloadData];        //通过tableview来删除上面的cell        //第一个参数:指定删除的哪一个分区的哪一行,把它作为一个元素放在数组中        //第二个参数:删除动画        [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];    }}//修改删除按钮的标题-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{    return @"来点我啊";}//置顶和删除 iOS8.0才有的-(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{    UITableViewRowAction *deleteAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {        //按钮点击所要触发的事件,都是写在block中        NSLog(@"触发了删除");    }];    deleteAction.backgroundColor=[UIColor cyanColor];    UITableViewRowAction *topAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {        NSLog(@"zhiding");        NSString *temp=self.arr[indexPath.row];        [self.arr removeObjectAtIndex:indexPath.row];        [self.arr insertObject:temp atIndex:0];        [self.tableView reloadData];    }];    topAction.backgroundColor=[UIColor redColor];    return @[deleteAction,topAction];}//移动-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{    //先获取到起始位置的数据    NSString *str=[self.arr[sourceIndexPath.row] retain];    //2.把起始位置对象从数据源中移除    [self.arr removeObjectAtIndex:sourceIndexPath.row];    //3.把数据插入到数组的目的位置上去    [self.arr insertObject:str atIndex:destinationIndexPath.row];    [str release];}-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{        return self.arr.count;}-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    static NSString *reuse=@"reuse";    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:reuse];    if (!cell) {        cell =[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];    }    cell.textLabel.text=self.arr[indexPath.row];    return cell;}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {    // Get the new view controller using [segue destinationViewController].    // Pass the selected object to the new view controller.}*/@end

这里写图片描述

0 0
原创粉丝点击