#import "AppDelegate.h" #include "RootTableViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window.rootViewController=[[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc] initWithStyle:UITableViewStylePlain]]; return YES; } #import <UIKit/UIKit.h> @interface RootTableViewController : UITableViewController //存储数据的可变集合 @property(strong,nonatomic) NSMutableArray *Contacts; // 记录选中行的索引值 @property(strong,nonatomic) NSIndexPath *CurrentIndexPath; #import "RootTableViewController.h" @interface RootTableViewController () @end @implementation RootTableViewController - (void)viewDidLoad { [super viewDidLoad]; self.title=@"侧滑按钮"; self.tableView.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"106.jpg"]]; //右编辑 self.navigationItem.rightBarButtonItem = self.editButtonItem; //数据源 self.Contacts=[NSMutableArray array]; [self.Contacts addObject:@"刘木"]; [self.Contacts addObject:@"燕江"]; [self.Contacts addObject:@"唐明芳"]; [self.Contacts addObject:@"王荣政"]; [self.Contacts addObject:@"张云江"]; [self.Contacts addObject:@"刘茂旭"]; //唯一标识 [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"MyCell"]; } #pragma mark - Table view data source //多少个分区 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { //#warning Incomplete implementation, return the number of sections return 1; } //每个分区多少行 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { //#warning Incomplete implementation, return the number of rows return self.Contacts.count; } //单元格重用 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell" forIndexPath:indexPath]; //获取集合内的元素添加到主标题上 cell.textLabel.text=self.Contacts[indexPath.row]; return cell; } //实现Cell自定义滑动操作 -(NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { //添加一个删除按钮 UITableViewRowAction *Top1=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { //更新数据 [self.Contacts removeObjectAtIndex:indexPath.row]; //更新 tableview [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; //反馈执行 删除操作 NSLog(@"删除"); [tableView setEditing:NO animated:YES]; }]; //添加按钮背景色 Top1.backgroundColor=[UIColor redColor]; //添加一个置顶按钮 UITableViewRowAction *Top2=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"置顶" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { //刷新数据 [self.Contacts exchangeObjectAtIndex:indexPath.row withObjectAtIndex:0]; //把所选项置顶 NSIndexPath *FirstIndexPath=[NSIndexPath indexPathForRow:0 inSection:indexPath.section]; [tableView moveRowAtIndexPath:indexPath toIndexPath:FirstIndexPath]; //反馈执行置顶操作 NSLog(@"置顶"); [tableView setEditing:NO animated:YES]; }]; //设置按钮的背景色 Top2.backgroundColor=[UIColor grayColor]; //返回我们所设置的按钮 但是得以数组的形式返回 return @[Top1,Top2]; }