一、插入、删除、移动、多选

方法一:

Cell的插入、删除、移动都有一个通用的方法,就是更新tableView的数据源,再reloadData,这样做实现上是简单一点,但是reloadData是刷新整个tableView,消耗性能。

方法二:

针对指定的位置进行插入、删除、移动

步骤:

1.让tableView进入编辑状态:

  - (void)setEditing:(BOOL)editing animated:(BOOL)animated

2.tableView会执行代理返回编辑的种类:

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

  插入:UITableViewCellEditingStyleInsert,左侧出现红色删除按钮

  删除:UITableViewCellEditingStyleDelete,左侧出现绿色添加按钮

  移动:UITableViewCellEditingStyleNone,右侧出现灰色移动按钮

  多选:UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert,左侧出现圆形选择框

3.在插入、删除、多选的时候右侧的移动按钮也会出现,这是因为tableView的代理- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath默认返回YES,所以默认编辑的时候可以移动,不需要的设置成NO就行了

4.执行tableView实现插入、删除、移动、多选

  插入:- (void)insertRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

  删除:- (void)deleteRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

  移动:不需要实现方法,移动后会执行回调- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath

  多选:不需要什么实现方法,cell的selectionStyle不能为UITableViewCellSelectionStyleNone不然没有多选效果,选中的一个cell的时候会执行代理- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath ,取消选中一个cell的时候执行回调:- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

二、系统刷新控件

在TableViewController中可以使用系统的刷新控件UIRefreshControl

使用方法:

1.创建UIRefreshControl

  //初始化

  UIRefreshControl *rc = [[UIRefreshControl alloc] init];

  //设置Title

  rc.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"];

  //响应方法

  [rc addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged];

  //赋给TableViewController

self.refreshControl = rc;

- (void)refresh{

  //控件状态,是否在刷新状态

if (self.refreshControl.isRefreshing) {

self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"加载中"];

}

}

与TableView插入、删除、移动、多选,刷新控件的更多相关文章

  1. SYRefresh 一款简洁易用的刷新控件 支持tableview,collectionview水平垂直刷新功能

    SYRefresh 地址: https://github.com/shushaoyong/SYRefresh 一款简洁易用的刷新控件 示例程序:   默认刷新控件使用方法: //添加头部刷新控件 Sc ...

  2. iOS:下拉刷新控件UIRefreshControl的详解

    下拉刷新控件:UIRefreshControl 1.具体类信息: @interface UIRefreshControl : UIControl //继承控制类 - (instancetype)ini ...

  3. # iOS 10 适配 # 适配刷新控件 以MJRefresh 为例

    在iOS10中ScrollView 添加了一个refreshControl的东西 - - 不知道水果公司做了什么  导致原有的刷新控件类刷新后frame.y 向下偏移了20 起初以为是水果调整了sta ...

  4. 上拉加载下拉刷新控件WaterRefreshLoadMoreView

    上拉加载下拉刷新控件WaterRefreshLoadMoreView 效果: 源码: // // SRSlimeView // @author SR // Modified by JunHan on ...

  5. 自定义下拉刷新控件-CBStoreHouseRefreshControl

    本文转载至 http://www.cocoachina.com/ios/20141110/10177.html iOS开发自定义刷新CBStoreHouseRefres 介绍 这是一款在Storeho ...

  6. [Swift通天遁地]二、表格表单-(4)使用系统自带的下拉刷新控件,制作表格的下拉刷新效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. Android 解决下拉刷新控件和ScrollVIew的滑动冲突问题。

    最近项目要实现ScrollView中嵌套广告轮播图+RecyleView卡片布局,并且RecyleView按照header和内容的排列样式,因为RecyleView的可扩展性很强,所以我毫无疑问的选择 ...

  8. ios--->上下拉刷新控件MJRefresh

    上下拉刷新控件MJRefresh 一.类结构 MJRefreshComponent.h MJRefreshHeader.h MJRefreshFooter.h MJRefreshAutoFooter. ...

  9. android官方下拉刷新控件SwipeRefreshLayout的使用

    可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介:SwipeRefreshLayout组件只 ...

随机推荐

  1. JS魔法堂:jQuery.Deferred(jQuery1.5-2.1)源码剖析

    一.前言 jQuery.Deferred作为1.5的新特性出现在jQuery上,而jQuery.ajax函数也做了相应的调整.因此我们能如下的使用xhr请求调用,并实现事件处理函数晚绑定. var p ...

  2. Chrome开发者工具详解(2)-Network面板

    Chrome开发者工具详解(2)-Network面板 注: 这一篇主要讲解面板Network,参考了Google的相关文档,主要用于公司内部技术分享. Chrome开发者工具面板 面板上包含了Elem ...

  3. JAVA - Collections用法总结

    一生二,二生三,三生万物,基础永远是一个计算机人的立身之本.数据结构这门课程的分析奠定了工程师对各种平台中的容器类,集合类的理解基础,正如好多人所说的,如果你对某个平台的集合类理解的不透彻,很可能,你 ...

  4. LeetCode - Balanced Binary Tree

    题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...

  5. MYSQL 函数 字符串到整数

    SELECT CAST('002' AS signed) 结果为2 SELECT CAST('125e342.83' as signed) 结果为 125

  6. AES加密类

    代码: using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace ...

  7. ASP.NET Core开发-读取配置文件Configuration

    ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML ...

  8. 微信公众号入门学习1_使用C#,ASP.NET APIController如何公众号接入服务器并启动开发者模式

    前言:  本文是以微信公众号中的订阅号(个人)来进行简单介绍,本人也是刚刚开始学习,有不足之处,欢迎批评指正. 先粘贴2个帮助链接: 入门指引:http://mp.weixin.qq.com/wiki ...

  9. C#编程总结(六)异步编程

    C#编程总结(六)异步编程 1.什么是异步? 异步操作通常用于执行完成时间可能较长的任务,如打开大文件.连接远程计算机或查询数据库.异步操作在主应用程序线程以外的线程中执行.应用程序调用方法异步执行某 ...

  10. 为什么我不建议你做APP?

    最近迷上了新产品的可行性分析和推演. 有几个朋友也准备跳入创业火坑了,找到我说帮忙做做产品分析和可行性讨论,欣然应允. 我一向厌恶纯凭感觉拍脑袋的方式,所以对于我不了解的行业,都会从行业背景.现状痛点 ...