当前位置: 传客网 > UItableView的编辑和移动

UItableView的编辑和移动

2017-01-11 作者:从善如流

#import "ViewController.h"


// 遵守协议

@interface ViewController >

{

    UITableViewCellEditingStyle _editStyle;

}

// 声明属性

@property , strong) UITableView *tableView;

@property , strong) NSMutableArray *dataArray;


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    

    // 声明存放数据的数组

    NSMutableArray *array1 = [[NSMutableArray ] , @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", ];

    NSMutableArray *array2 = [[NSMutableArray ] : @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", @", ];

    

    .dataArray = [[NSMutableArray alloc] initWithObjects:array1,array2, ];

    

    .tableView = [[UITableView alloc] initWithFrame.frame style];

    // 设置代理人

    .delegate = ;

    .dataSource = ;

    //

    [.view addSubview];

    

    .leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash targetself action(leftClick:)];

    .rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd targetself action(rightClick:)];


}


#pragma mark-=======UItableView的移动()


//第一步: 是否能够移动

-(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{

    return YES;

}


// 第二步:返回目的地

// 在这里可以限制跨区域移动

-(NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath{

    // 如果是在一个分组就让移动到目的地

    if (proposedDestinationIndexPath.section == sourceIndexPath.section) {

        return proposedDestinationIndexPath;

    }else {

        // 如果不是则返回原来的分组

        return sourceIndexPath;

    }

}


// 第三步:处理移动结束后的代理方法

// 写了这个方法右边才会出现在三道杠

// 在这个方法里边处理数据的移动

-(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{

    

    // 取出

    NSString *str = row];

    // 删除当前的cell

    [section] row];

    // 移动到指定位置

    [section] insertObject:str row];


}



//

//- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{

//    return @[@"

//}


- (UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

    return 40;

}


-(UITableView *)tableView{

    return ;

}


#pragma mark - ================UItableView的编辑


// 左边按钮的点击事件和样式

- (UIBarButtonItem *)bar{

    _editStyle = UITableViewCellEditingStyleDelete;

    [.tableView setEditing.isEditing animated];

}

// 右边按钮的点击事件和样式

- (UIBarButtonItem *)bar{

    _editStyle = UITableViewCellEditingStyleInsert;

    [.tableView setEditing.isEditing animated];

}


// 设置哪一个cell能够进入编辑样式(默认为都可以编辑)

-(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{

    return YES;

}


// 返回tableView的编辑样式(是删除还是添加。默认为删除)

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

    return _editStyle;

}


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

    if (editingStyle == UITableViewCellEditingStyleDelete) {

        // 最重要的一点:先对数据进行操作,然后对UI进行操作

        [] removeObjectAtIndex];

        

        [.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation];

    }else {

        [section] row + 1];

        NSIndexPath *index = [NSIndexPath indexPathForRow:indexPath.row + 1 inSection];

        [.tableView insertRowsAtIndexPaths:@[index] withRowAnimation];

    }

}


// 返回有多少个cell(一般返回的是一个数组)

- (UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return [dataArray[section] count];

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    

    // 初始化一个字符串作为重用池,并把字符串放在静态区防止每次调用的时候重复初始化

    static NSString *str = ;

    // 初始化一个cell并从重用池中取出

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:str];

    if (!cell) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:str];

    }

    cell.text = row];

    return cell;

}


 

@end




相关推荐

  • STORM Mobile多功能高/标清视音频移动编辑解决方案

    STORMMobile多功能高/标清视音频编辑解决方案STORMMobile增强了EDIUS6非线性编辑系统的实时现场编辑能力。通过选择配备PCI-E1X卡或ExpressCard/34卡可以分别与台式或笔记本连接。其提供了包括:HDMI输

  • UITableView的基本操作(编辑,删除,增加,移动)

    表格是App中最常用的功能之一,表格的自定义展示,大小,分区分组,段头段尾,点击方法;编辑模式下的移动,删除,添加等都是要牢牢掌握的功能。#import"AppDelegate.h"#import"ViewController.h"@int

  • UIElven(UITableView编辑)

    //UITableView编辑步骤如下//让TableView处于编辑状态-(void)setEditing:(BOOL)editinganimated:(BOOL)animated//协议设定//1、确定cell是否处于编辑状态-(BOO

  • Day11:UITableView(单分组, 多分组, 左滑删除, 插入和移动)

    UITableView(表格视图)UITableView是用一种表格的形式来显示一组或者多组数据UITableView继承于UIScrollView,UITableView默认值水平方向不能滚动,在垂直方向可以滚动一、单分组的UITable

  • 安卓中庭-Muvee将推出Android移动电话3D视频编辑软件

    个人视频方面的先驱和全球领先者MuveeTechnologies推出了应用于Android平台的首个3D视频编辑器。Muvee曾为移动电话平台开发过不少视频编辑工具,随后他们将目标转向了三维影视编辑。开发团队通过与设备制造商和芯片厂家合作,

  • cygwin的vim编辑模式如何移动光标和删除字符

    cygwin的vim在编辑模式下输入的所有字符都会显示出来,包括上下左右箭头键,这会给移动光标位置造成困扰。如果想避免可编辑~/.vimrc加上一行setnocompatible同样为了让退格键(backspace)删除字符,需加上一行se

  • 网络部网站编辑培训资料

    网络部网站编辑培训资料一、网站编辑工作的意义和目的1.1编辑是做什么的?网站编辑是网站运营中的一个重要环节。网站编辑的任务是收集和整理网站相关资料,上传电子版的文章及资料。并能以统筹的眼光分析网站,对网站进行全面的优化。提高网站在搜索引擎上

  • 合格的网站编辑需要具备哪些技能?(图文)

      由于网站编辑的进入门槛很低,因为入职要求是只要会打字就能当编辑,但是也相应的会变成“苦力”型网站编辑,因为门槛低,网站编辑会成为几乎所有专业毕业生都能胜任的职位,也因为门槛低,其薪资自然不敢恭维。那么,什么样的网站编辑才算是合格的网站编

  • Luminar mac - 照片编辑器

    LuminarMac版是一款macOS平台的专业的图像编辑处理工具,LuminarMac版支持Raw文件的编辑处理、照片滤镜处理、层编辑等等专业的图像编辑处理功能。Luminar允许您删除不需要的对象,色偏和数字噪音。它可以帮助你润饰皮肤,

  • 安卓杂谈 Muvee将推出Android移动电话3D视频编辑软件

    开发团队通过与设备制造商和芯片厂家合作,终极研发了能带来更强大用户体验的高度优化的算法和视频解码器。拥有自主专利的CODEN(CompressedDomainEditingEngine压缩域编辑引擎),这项技术能够突破解压视频文件后才能编辑

  • UI课程之UITableView的编辑,数据处理,UITableViewController

    创建tableView并且签订协议重写初始化方法-(instancetype)initWithNibName:(NSString*)nibNameOrNilbundle:(NSBundle*)nibBundleOrNil{self=[sup

  • 微信更新了!可编辑图片 直接将微信收藏的表情贴在照片上

    沉默了很多很多,终于,微信更新了!昨天,微信发布iOS版6.5.2版本,虽然只是一个小版本的升级,但是内容量却着实不少,比如说,更新了图片编辑功能。6.5.2版本更新日志中列出了3点主要更新的功能:选择照片时可以进行简单的编辑;在Apple

  • Linux Centos下安装与设置Vim编辑器和基本配置

    LinuxCentos下安装与设置Vim编辑器和基本配置我们安装完Centos后,它默认是安装了Vi编辑器的。但Vim编辑器是没安装或者未完全安装的。下面进行安装配置:第一步:检测是否已经安装过Vim:输入命令:rpm-qa|grepvim

  • 百度编辑器ueditor 的用法

    1、直接引用2、创建对象//实例化编辑器//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例varue=UE.getEditor('

  • 微信6.5.2更新:增加照片编辑功能

    这次微信6.5.2更新后又增加了一个非常不错的功能:照片图片编辑。简单说就是在微信发送照片前,就可以对照片进行编辑。这里,阳阳老师就来为大家介绍一下功能的体验。首先,进入一个聊天对话,并点击“照片”,继续点击选中照片,在左下角后会出现一个“

  • 关于解决留言板管理员回复后不能再编辑修改的方法

    当管理员对留言进行一次回复后,就不能再编辑,不知道为什么会了现这个BUG,而且在后续的版本里面也没有解决,这里偶来说明一下如何解决这个BUG,造成回复后不能再编辑的原因就是因为,第一次回复后,里面存在单引号,所以当第二次回复后没有进行单引号

  • 2016年度电子产品世界编辑推荐奖获奖名单

    2016年度电子产品世界编辑推荐奖,经过5个月的征集、评选和投票环节,最终获奖名单揭晓,恭喜27家厂商的26个产品获得2016年度电子产品世界编辑推荐奖。感谢74家厂商和2000多名受邀网友对本次活动的大力支持!本文引用地址:http://

  • 中国西藏新闻网副总编辑德吉卓嘎:内容建设、渠道建设、传播形式缺一不可

    中国西藏新闻网副总编辑德吉卓嘎人民网北京12月15日电今天上午,由人民日报社、中央网信办指导,人民网研究院主办,信用体系网协办的2016党报网站高峰论坛在人民日报社新媒体大厦人民网一号演播厅举行。中国西藏新闻网副总编辑德吉卓嘎在圆桌论坛“不

  • 《编辑本论》读书报告(原创)

    书名:《编辑本论》作者:吴平版本:武汉大学出版社(2005年)页数:296页本书内容简要:《编辑本论》一书中,作者针对初学者对编辑学的入门,以简、直、白的方式概括性地从编辑理论概述、编辑工作、编辑人员、编辑思想、编辑过程、装帧设计和编辑现代

  • 电子杂志制作工具|名编辑电子杂志大师(电子杂志制作破解版

    名编辑电子杂志大师是一款集编辑与转换于一身的企业级3D翻页电子杂志制作软件,可以在软件里新建页面直接编辑制作电子杂志;也可以导入PDF/图片,以导入的内容作为电子杂志的基础页面,再度进行编辑。名编辑电子杂志大师软件简介:名编辑电子杂志大师是

返回
顶部