你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS編程技術 >> iOS 側滑按鈕的實現

iOS 側滑按鈕的實現

編輯:IOS編程技術
#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];
    
}
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved