文档章节

UITableView的编辑样式

zh_iOS
 zh_iOS
发布于 2016/05/12 17:18
字数 563
阅读 172
收藏 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
粉丝 27
博文 74
码字总数 34182
作品 0
石景山
程序员
私信 提问
iOS UITableView代理方法详解

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

珲少
2015/04/22
0
2
UITableView 基本使用方法总结

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

悠哉悠哉e
2012/11/13
0
0
IOS 9 UITableView整理

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

钟淳亚
2015/11/13
0
0
UITableView 保存选中状态的方式

昨天看到UITableView中的属性 @property(nonatomic) BOOL allowsSelection;//是否允许选中cell,默认为YES@property(nonatomic) BOOL allowsMultipleSelection;//是否允许多个选中cell@proper......

Aimy
2013/11/12
0
0
iOS开发系列--UITableView全面解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/47753205 --UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛...

KenshinCui
2015/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IC-CAD Methodology企业实战之openlava

在云计算解决安全问题并成为IC界主流运算平台之前,私有的服务器集群系统仍然是各大IC公司的计算资源平台首选。 现在主流的服务器集群管理系统包括lsf,openlava,SkyForm,三者都属于lsf一系...

李艳青1987
16分钟前
0
0
http response stream 字节流 接收与解码

在接收图片、音频、视频的时候,需要用到二进制流。 浏览器会发给客户端 字节Byte流,一串串的发过来_int8格式 -128~127(十进制),也就是8bit(位)。 客户端接收的时候,对接收到的字节收集,...

大灰狼wow
16分钟前
0
0
配置Tomcat监听80端口...

12月13日任务 16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 1.配置Tomcat监听80端口 示例一:自定义监听端口 vim /usr/local/tomcat/conf/server.xml 编辑...

hhpuppy
16分钟前
0
0
在ubuntu中配置java环境

先在官网下载一个jdk 进入root权限,避免之后出现创建文件失败或者修改文本失败的问题 sudo i 创建一个文件夹来放置jdk解压后的文件 mkdir 文件夹mv jdk1.9(你下载的jdk文件) 你创建 的文件...

无极之岚
17分钟前
0
0
程序中设置MySQL的默认值

import com.alibaba.fastjson.JSON;import java.beans.PropertyDescriptor;import java.lang.annotation.*;import java.lang.reflect.Field;import java.lang.reflect.Method;impo......

laolin23
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部