文档章节

UITableView的编辑样式

zh_iOS
 zh_iOS
发布于 2016/05/12 17:18
字数 563
阅读 158
收藏 1
点赞 4
评论 0

    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
博文 71
码字总数 32391
作品 0
石景山
程序员
一个多UITableview的左右滑动简单解决方案

前言 本文源自实际开发中的需求,核心的要求有几个: 1、多个UITableview要支持左右滑动; 2、点击Tab也要有UITableview的滑动切换效果; 3、每个UITableview单独的下拉刷新和上拉加载; 效果...

落影loyinglin ⋅ 04/22 ⋅ 0

UITableView方法的执行顺序流畅性优化

(一)、UITableView的执行顺序 numberOfSectionsInTableView(确定有几组) -> numberOfRowsInSection(确定每组有多少的行) -> heightForRowAtIndexPath(确定每行cell的高度) 以上信息确定完毕...

朝雨晚风 ⋅ 2017/10/23 ⋅ 0

iOS UITableView获取特定位置的cell

一、tableView双级联动 以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tableView顶部的cell的indexPath。 方案一:获得当前可见的所有cell,然后取可见cell数组中的第...

且行且珍惜_iOS ⋅ 05/23 ⋅ 0

Table View Programming Guide for iOS 官方文档翻译

About Table Views in iOS Apps( iOS应用程序中的Table View) Table views are versatile user interface objects frequently found in iOS apps. A table view presents data in a scrol......

zyq522376829 ⋅ 05/03 ⋅ 0

iOS开发笔记(八)---- 键盘、静态库、动画、Crash定位

前言 分享开发中遇到的问题,和相关的一些思考。 iOS11键盘问题 功能背景: 弹出键盘时,如果有输入框的话,需要输入框的位置跟随键盘大小而变动。 问题描述: 当快速切换键盘之后,容易出现...

落影loyinglin ⋅ 04/28 ⋅ 0

iOS 面试全方位剖析 -- UI视图篇(二)

UITableView相关 事件传递&视图响应 图像显示原理 卡顿&掉帧 绘制原理&异步绘制 离屏渲染 面试问题总结 图像显示原理 具体的看一下CPU和GPU做了哪些事,看下图 } 此时的堆栈...

PetitBread ⋅ 05/10 ⋅ 0

iOS打造属于自己的用户行为统计系统

打造一款符合自己公司需求的用户行为统计系统,相信是很多运营人员的梦想,也是开发人员对技术的的执着追求。下面我为大家分一享下自己为公司打造的用户行为统计系统。   用户行为统计(Us...

贝勒老爷 ⋅ 04/20 ⋅ 0

iOS 图解一个功能很全的视频播放器的使用

大家好, 上一次我分享了一个视频播放器(SJVideoPlayer), 今天我再给大家分享一下它的使用图解, 希望大家喜欢. 对了, 本项目除了全屏手势hook了一下nav的push方法, 其它功能都对原始项目无任何...

changsanjiang ⋅ 06/06 ⋅ 0

高性能聊天页面解决方案 - CDChatList

CDChatList 高性能的聊天页面解决方案 对聊天列表的高度封装,可灵活配置页面样式 聊天界面其实大同小异,所以这里封装了一个聊天的组件,使用CoreText和手动代码布局,尽量实现简单,通用,...

chdo002 ⋅ 04/26 ⋅ 0

iOS 面试全方位剖析 -- UI视图篇

UITableView相关 事件传递&视图响应 图像显示原理 卡顿&掉帧 绘制原理&一步绘制 离屏渲染 UITableView相关 重用机制 这里A1到A7视为同一个标识符,虚线是可视区域,当A1滑出可视区域的时候会...

PetitBread ⋅ 05/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从零开始搭建Risc-v Rocket环境---(1)

为了搭建Rocke环境,我买了一个2T的移动硬盘,安装的ubuntu-16.04 LTS版。没有java8,gcc是5.4.0 joe@joe-Inspiron-7460:~$ java -version程序 'java' 已包含在下列软件包中: * default-...

whoisliang ⋅ 9分钟前 ⋅ 0

大数据学习路线(自己制定的,从零开始学习大数据)

大数据已经火了很久了,一直想了解它学习它结果没时间,过年后终于有时间了,了解了一些资料,结合我自己的情况,初步整理了一个学习路线,有问题的希望大神指点。 学习路线 Linux(shell,高并...

董黎明 ⋅ 15分钟前 ⋅ 0

systemd编写服务

一、开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。 如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。 ...

勇敢的飞石 ⋅ 17分钟前 ⋅ 0

mysql 基本sql

CREATE TABLE `BBB_build_info` ( `community_id` varchar(50) NOT NULL COMMENT '小区ID', `layer` int(11) NOT NULL COMMENT '地址层数', `id` int(11) NOT NULL COMMENT '地址id', `full_......

zaolonglei ⋅ 26分钟前 ⋅ 0

安装chrome的vue插件

参看文档:https://www.cnblogs.com/yulingjia/p/7904138.html

xiaoge2016 ⋅ 29分钟前 ⋅ 0

用SQL命令查看Mysql数据库大小

要想知道每个数据库的大小的话,步骤如下: 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(da...

源哥L ⋅ 51分钟前 ⋅ 0

两个小实验简单介绍@Scope("prototype")

实验一 首先有如下代码(其中@RestController的作用相当于@Controller+@Responsebody,可忽略) @RestController//@Scope("prototype")public class TestController { @RequestMap...

kalnkaya ⋅ 56分钟前 ⋅ 0

php-fpm的pool&php-fpm慢执行日志&open_basedir&php-fpm进程管理

12.21 php-fpm的pool pool是PHP-fpm的资源池,如果多个站点共用一个pool,则可能造成资源池中的资源耗尽,最终访问网站时出现502。 为了解决上述问题,我们可以配置多个pool,不同的站点使用...

影夜Linux ⋅ 今天 ⋅ 0

微服务 WildFly Swarm 管理

Expose Application Metrics and Information 要公开关于我们的微服务的有用信息,我们需要做的就是将监视器模块添加到我们的pom.xml中: 这将使在管理和监视功能得到实现。从监控角度来看,...

woshixin ⋅ 今天 ⋅ 0

java连接 mongo伪集群部署遇到的坑

部署mongo伪集群 #创建mongo数据存放文件地址mkdir -p /usr/local/config1/datamkdir -p /usr/local/config2/data mkdir -p /usr/local/config3/data mkdir -p /usr/local/config1/l......

努力爬坑人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部