#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];
}