TableView编辑
来源:互联网 发布:网页图片制作软件 编辑:程序博客网 时间:2024/05/19 22:55
准备工作
1.Student.h
#import <Foundation/Foundation.h>@interface Student : NSObject@property(nonatomic,copy)NSString *name;@property(nonatomic,copy)NSString *phone;@property(nonatomic,copy)NSString *address;@property(nonatomic,copy)NSString *age;@property(nonatomic,copy)NSString *sex;@property(nonatomic,copy)NSString *hobby;@end
2.Student.m
#import "Student.h"@implementation Student-(void)setValue:(id)value forUndefinedKey:(NSString *)key{}@end
3.RootViewController.m
#import "RootViewController.h"#import "Student.h"@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate>@property(nonatomic,retain)NSMutableArray *stuArr;@property(nonatomic,retain)UITableView *tableView;@end@implementation RootViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor=[UIColor whiteColor]; [self createData]; self.tableView=[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain]; [self.view addSubview:self.tableView]; [self.tableView release]; self.tableView.dataSource=self; self.tableView.delegate=self; //设置导航栏编辑按钮 self.navigationItem.rightBarButtonItem=self.editButtonItem; //开启一下tableView的编辑模式// [self.tableView setEditing:YES animated:YES];}//重写一下系统提供的编辑按钮(rightButton)点击方法-(void)setEditing:(BOOL)editing animated:(BOOL)animated{ [super setEditing:editing animated:animated]; [self.tableView setEditing:editing animated:animated];}-(void)createData{ NSString *path=@"/Users/dllo/Desktop/UI/UI11_tableView编辑/UI11_tableView编辑/Student.plist"; NSArray *arr=[NSArray arrayWithContentsOfFile:path]; self.stuArr=[NSMutableArray array]; for (NSDictionary *dic in arr) { Student *stu=[[Student alloc] init]; [stu setValuesForKeysWithDictionary:dic]; [self.stuArr addObject:stu]; [stu release]; }}-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ Student *stu=self.stuArr[indexPath.row]; stu.name=@"陈伟霆";// [self.tableView reloadData]; //单行刷新(不消耗资源) [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight];}-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.stuArr.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]; } Student *stu=self.stuArr[indexPath.row]; cell.textLabel.text=stu.name; return cell;}
二.
逐行的去设置哪些行编辑,哪些行不编辑
#pragma mark 逐行的去设置哪些行编辑,哪些行不编辑-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{// if (indexPath.row%2==0) {// return YES;// }else{ return YES;// }}
设置编辑模式
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ //返回的是多选状态// return UITableViewCellEditingStyleInsert|UITableViewCellEditingStyleDelete; return UITableViewCellEditingStyleDelete;}
设置删除按钮的标题
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{ return @"来点我";}
实现左滑效果,而且是对应按钮功能的方法
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"编辑开始"); //判断当前编辑模式 if(editingStyle==UITableViewCellEditingStyleDelete){ //先把数组里的对象删掉 [self.stuArr removeObjectAtIndex:indexPath.row]; //第一种方式// [self.tableView reloadData]; //第二种方式 [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft]; }}
移动
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{ //他只是视觉上移动,并没有改变数据的顺序,所以想要改变数组顺序,需要用代码实现 //获取要移动的数据 Student *stu=[self.stuArr[sourceIndexPath.row] retain]; //在数组里把这个对象移除掉 [self.stuArr removeObjectAtIndex:sourceIndexPath.row]; [self.stuArr insertObject:stu atIndex:destinationIndexPath.row]; [stu release];}
- (nullable NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewRowAction *actionFirst=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"通话" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { NSLog(@"233333333333"); }]; actionFirst.backgroundColor=[UIColor cyanColor]; return @[actionFirst];}
0 0
- TableView编辑
- TableView编辑
- 可编辑的TableView
- 设置TableView可编辑
- tableview 编辑整理
- tableView选中状态编辑
- tableView的编辑模式
- tableView - 编辑模式
- tableView的编辑
- tableview的编辑
- tableView的编辑
- 34.tableView的编辑
- IOS-tableview编辑
- tableView - 编辑模式
- tableView的编辑
- TableView的编辑
- tableView编辑样式设计
- TableView之编辑模式
- 自定义UICollectionView的头视图或者尾视图(UICollectionReusableView)
- 编程输入一行文字,找出其中的大写字母,小写字母个数
- Android Studio开发文档doc显示问题
- 编程输入一行文字,找出其中的大写字母,小写字母个数
- 解读Unity中的CG编写Shader系列1——初识CG
- TableView编辑
- C#使用StreamWriter类写入文件文件
- tomcat的session共享
- JavaHL(JNI) Not Available
- thinkphp 跨模块调用
- Hibernate教程02——类继承(单表继承)
- 【Java并发编程实战】----- AQS(三):阻塞、唤醒:LockSupport
- 哈希表,HashTable
- uva227 - Puzzle