zoukankan      html  css  js  c++  java
  • IOS学习之路六(UITableView滑动删除指定行)

    滑动删除指定行代码如下:


    Controller.h文件

    #import <UIKit/UIKit.h>
    
    @interface TableViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>
    @property (nonatomic, strong) UITableView *myTableView;
    @property(nonatomic,strong) NSMutableArray *arrayOfRows;
    @end
    


    Controller.m文件

    //
    //  TableViewController.m
    //  UITableViewDemo
    //
    //  Created by WildCat on 13-8-6.
    //  Copyright (c) 2013年 wildcat. All rights reserved.
    //
    
    #import "TableViewController.h"
    
    @interface TableViewController ()
    
    @end
    
    @implementation TableViewController
    @synthesize myTableView;
    @synthesize arrayOfRows;
    
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    	// Do any additional setup after loading the view, typically from a nib.
        self.view.backgroundColor = [UIColor whiteColor];
        myTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
        //设置列表样式为简单的样式 还有一个样式为UITableViewStyleGrouped为分组模式   UITableViewStylePlain为普通的样式
        self.myTableView.delegate = self;//设置代理为自身
        self.myTableView.dataSource = self;//设置数据源为自身
        self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
        //确保TablView能够正确的调整大小
        arrayOfRows = [[NSMutableArray alloc] initWithObjects:@"a",@"b",@"c",@"d", nil];//初始化表格数据
        [self.view addSubview:myTableView];
        
    }
    //设置每行的高度
    -(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
        CGFloat result = 20.0f;
        if ([tableView isEqual:self.myTableView]) {
           
            result = 80.0f;
        }
        return result;
    }
    //允许数据源告知必须加载到Table View中的表的Section数。
    //-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    //    NSInteger result = 0;
    //    if([tableView isEqual:myTableView]){
    //        result = 3;//一共三个section
    //    }
    //    return result;
    //}
    //设置每个Section呈现多少行
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
        return [self.arrayOfRows count];
    }
    //每行对应的数据
    -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        UITableViewCell *result = nil;
        if ([tableView isEqual:myTableView]) {
            static NSString *tableViewCellIdentifier = @"MyCells";//设置Cell标识
            result = [tableView dequeueReusableCellWithIdentifier:tableViewCellIdentifier];//通过标示符返回一个可重用的表视图单元格对象
            if (result == nil) {
                result = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:tableViewCellIdentifier];//初始化一个表格单元格样式和重用的标识符,并将它返回给调用者。
            }
            //indexPath.section 表示section的索引 indexPath.row表示行数的索引
            result.textLabel.text = [self.arrayOfRows objectAtIndex:indexPath.row];
        }
        return result;
    }
    
    //点击某一行时候触发的事件
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
        if ([tableView isEqual:myTableView]) {
            NSLog(@"%@",[NSString stringWithFormat:@"Cell %ld in Section %ld is selected",(long)indexPath.row,(long)indexPath.section]);
        }
    }
    //要求委托方的编辑风格在表视图的一个特定的位置。
    -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
        UITableViewCellEditingStyle result = UITableViewCellEditingStyleNone;//默认没有编辑风格
        if ([tableView isEqual:myTableView]) {
            result = UITableViewCellEditingStyleDelete;//设置编辑风格为删除风格
        }
        return result;
    }
    
    -(void)setEditing:(BOOL)editing animated:(BOOL)animated{//设置是否显示一个可编辑视图的视图控制器。
        [super setEditing:editing animated:animated];
        [self.myTableView setEditing:editing animated:animated];//切换接收者的进入和退出编辑模式。
    }
    
    -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{//请求数据源提交的插入或删除指定行接收者。
        if (editingStyle ==UITableViewCellEditingStyleDelete) {//如果编辑样式为删除样式
            if (indexPath.row<[self.arrayOfRows count]) {
                [self.arrayOfRows removeObjectAtIndex:indexPath.row];//移除数据源的数据
                [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];//移除tableView中的数据
            }
        }
    }
    
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    
    
    - (void)viewDidUnload
    {
        [super viewDidUnload];
        // Release any retained subviews of the main view.
       // self.myTableView = nil;
    }
    
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
    
    @end
    
    
    
    
    
    
    


    执行截图:







  • 相关阅读:
    Leetcode Binary Tree Preorder Traversal
    Leetcode Minimum Depth of Binary Tree
    Leetcode 148. Sort List
    Leetcode 61. Rotate List
    Leetcode 86. Partition List
    Leetcode 21. Merge Two Sorted Lists
    Leetcode 143. Reorder List
    J2EE项目应用开发过程中的易错点
    JNDI初认识
    奔腾的代码
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3241623.html
Copyright © 2011-2022 走看看