文档章节

UITableView的编辑样式

zh_iOS
 zh_iOS
发布于 2016/05/12 17:18
字数 563
阅读 168
收藏 1

    UITableView是iOS众多UI控件中较为神奇的一个,熟练的使用UITableView必然能为你的UI界面搭建带来莫大的好处!

    下面就UITableView的编辑样式做一下梳理:

    UITableView的编辑样式:

typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {

    UITableViewCellEditingStyleNone,  // 无样式

    UITableViewCellEditingStyleDelete, // 删除样式

    UITableViewCellEditingStyleInsert // 插入样式

};
self.dataArr = @[ @"一一一一一一一一",

                     @"二二二二二二二二",

                     @"三三三三三三三三",

                     @"四四四四四四四四",

                     @"五五五五五五五五",

                     @"六六六六六六六六",

                     @"七七七七七七七七",

                     @"八八八八八八八八"];

// 设置 
self.tableView.editing = YES;

//同时实现talbeView的代理方式:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row < 2) { // 删除样式

        return UITableViewCellEditingStyleDelete;

    } else if (indexPath.row >= 2 && indexPath.row < 4) { // 插入样式

        return UITableViewCellEditingStyleInsert;

    } else if (indexPath.row >=4 && indexPath.row < 6){ // 圆圈样式

        return UITableViewCellEditingStyleInsert | UITableViewCellEditingStyleDelete;

    } else { // 无样式

        return UITableViewCellEditingStyleNone;

    }

}

即可展示UITableView的编辑样式,如下图:

以上分别对应的样式为 删除 , 插入,(特殊的样式!!!!),无样式, 其中比较特别的也是这篇博文主要要介绍的功能.

-----------------------------------------------

当返回的样式是

 return UITableViewCellEditingStyleInsert | UITableViewCellEditingStyleDelete;

时,

展示的是前面有个圆圈的样式,这种样式可以实现选中和反选功能 (这种样式的cell还是很实用并且常见的).

设置 

UIView *view = [[UIView alloc] initWithFrame:cell.bounds];

    view.backgroundColor = [UIColor whiteColor];

    cell.multipleSelectionBackgroundView = view;

  就可以把这种样式选中的蓝色背景给去掉.(应该也有其他方法,你们可以自行探索哦)

其中 self.tableView.indexPathsForSelectedRows; 返回的是所有选中cell的indexPath

数组.用时可以通过遍历 数组获得所有选中的cell 所在的分区和行.从而进行相应的逻辑处理!

self.tableView.tintColor = [UIColor redColor]; 可以修改前面圆圈的颜色

---------------------------------------------------

至于删除功能,一般不用在编辑状态下的删除,而是用用左滑删除:

此时设置 self.tableView.editing = NO;(默认为NO),然后实现代理方法:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

    NSLog(@"----->%ld",editingStyle);

    if (editingStyle == UITableViewCellEditingStyleDelete) {

        NSLog(@"---->点击了删除"); // 在这里面做相应的删除逻辑处理

    }

}

效果图如下:

插入的编译样式(除了苹果通讯录有用到)基本没见过.....

以上为内容为个人总结,如果纰漏欢迎批评指正!

 

 

 

 

      

© 著作权归作者所有

共有 人打赏支持
zh_iOS
粉丝 26
博文 74
码字总数 34182
作品 0
石景山
程序员
iOS UITableView代理方法详解

iOS UITableView的代理方法详解 一、补充 在上一篇博客中,http://my.oschina.net/u/2340880/blog/404605,我将IOS中tableView(表视图)的一些常用方法总结了一下,这篇将tableView的代理方法...

珲少
2015/04/22
0
2
IOS 9 UITableView整理

首先,UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped。 然后,UITableViewCellStyle的样式 typedef NS_ENUM(NSInteger, UITableViewCellStyle) { UITableViewCell......

钟淳亚
2015/11/13
0
0
UI_09 UITableView(表视图)

⼀、表视图 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView。UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳 1、表示图的样式 UITableViewStylePlain UITa...

黑伞将军
2015/08/26
0
0
UITableView 基本使用方法总结

首先,Controller需要实现两个 delegate ,分别是 UITableViewDelegate 和 UITableViewDataSource 2.然后 UITableView对象的 delegate要设置为 self。 3. 然后就可以实现这些delegate的一些方...

悠哉悠哉e
2012/11/13
0
0
[非凡程序员]uitableview uiimage 的手动编写 加密

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //实例化一个列表对象UITableView对象 UITabl......

TimeConcept
2015/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
28分钟前
0
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
52分钟前
2
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
2
0
php foreach

<?php// 数组的引用$a=array(1,2,3,4,5);foreach($a as $key=>&$value){$value=$value*2;}print_r($a);echo " $key -------------------$value\r\n";/** * ...

小张525
今天
3
0
12-利用思维导图梳理JavaSE-多线程

12-利用思维导图梳理JavaSE-多线程 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一...

飞鱼说编程
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部