- 浏览: 534356 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
这篇文章是建立在 代码实现 UITableView与UITableViewCell基础上进行修改,用不上的代码我注释调,部分不明白可以看看上篇博客;实现的功能是对UITableViewCell的标记、移动、删除、插入;
1.标记:指的是选中某一行,在这一行后面有个符号,常见的是对勾形式
通过修改cell的accessoryType属性来实现,首先,在ViewDidLoad中[tableView setEditing:NO animated:YES];表示把单元格可编辑状态这只为NO
当我们选中单元格的时候,调用此函数,首先是indexPath检测选中了哪一行,if判断当前单元格是否被标记,也就是当前单元格风格,是否为UITableViewCellAccessoryCheckmark风格,如果是,则换成UITableViewCellAccessoryNone(不被标记风格)风格,以下是accessoryType四个风格属性
UITableViewCellAccessoryCheckmark
[img]
[/img]
UITableViewCellAccessoryDetailDisclosureButton
[img]
[/img]
UITableViewCellAccessoryDisclosureIndicator
[img]
[/img]
UITableViewCellAccessoryNone
[img]
[/img]
2.移动
实现移动单元格就需要把单元格的编辑属性设置为YES,[tableView setEditing:YES animated:YES];
三种风格的分别是:
UITableViewCellEditingStyleDelete
[img]
[/img]
UITableViewCellEditingStyleInsert
[img]
[/img]
UITableViewCellEditingStyleNone
[img]
[/img]
实现移动的方法
单元格的移动是选中单元格行后面三条横线才可以实现移动的
3.删除
首先是判断(UITableViewCellEditingStyle)editingStyle,所以
删除了张四 效果图:
[img]
[/img]
4.添加
实现方法和删除方法相同,首先还是返回单元格编辑风格
为了显示效果明显,在.h文件中声明一个变量i
运行效果图:
[img]
[/img]
在删除和添加单元格的用到UITableViewRowAnimation动画效果,它还有其他几种效果,在此不做测试
UITableViewRowAnimationAutomatic UITableViewRowAnimationTop
UITableViewRowAnimationBottom UITableViewRowAnimationLeft
UITableViewRowAnimationRight UITableViewRowAnimationMiddle
UITableViewRowAnimationFade UITableViewRowAnimationNone
1.标记:指的是选中某一行,在这一行后面有个符号,常见的是对勾形式
通过修改cell的accessoryType属性来实现,首先,在ViewDidLoad中[tableView setEditing:NO animated:YES];表示把单元格可编辑状态这只为NO
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cellView = [tableView cellForRowAtIndexPath:indexPath]; if (cellView.accessoryType == UITableViewCellAccessoryNone) { cellView.accessoryType=UITableViewCellAccessoryCheckmark; } else { cellView.accessoryType = UITableViewCellAccessoryNone; [tableView deselectRowAtIndexPath:indexPath animated:YES]; } }
当我们选中单元格的时候,调用此函数,首先是indexPath检测选中了哪一行,if判断当前单元格是否被标记,也就是当前单元格风格,是否为UITableViewCellAccessoryCheckmark风格,如果是,则换成UITableViewCellAccessoryNone(不被标记风格)风格,以下是accessoryType四个风格属性
UITableViewCellAccessoryCheckmark
[img]
[/img]
UITableViewCellAccessoryDetailDisclosureButton
[img]
[/img]
UITableViewCellAccessoryDisclosureIndicator
[img]
[/img]
UITableViewCellAccessoryNone
[img]
[/img]
2.移动
实现移动单元格就需要把单元格的编辑属性设置为YES,[tableView setEditing:YES animated:YES];
//返回YES,表示支持单元格的移动 -(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; }
//单元格返回的编辑风格,包括删除 添加 和 默认 和不可编辑三种风格 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleInsert; }
三种风格的分别是:
UITableViewCellEditingStyleDelete
[img]
[/img]
UITableViewCellEditingStyleInsert
[img]
[/img]
UITableViewCellEditingStyleNone
[img]
[/img]
实现移动的方法
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { // 需要的移动行 NSInteger fromRow = [sourceIndexPath row]; // 获取移动某处的位置 NSInteger toRow = [destinationIndexPath row]; // 从数组中读取需要移动行的数据 id object = [self.listData objectAtIndex:fromRow]; // 在数组中移动需要移动的行的数据 [self.listData removeObjectAtIndex:fromRow]; // 把需要移动的单元格数据在数组中,移动到想要移动的数据前面 [self.listData insertObject:object atIndex:toRow]; }
单元格的移动是选中单元格行后面三条横线才可以实现移动的
3.删除
首先是判断(UITableViewCellEditingStyle)editingStyle,所以
//单元格返回的编辑风格,包括删除 添加 和 默认 和不可编辑三种风格 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; }
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle==UITableViewCellEditingStyleDelete) { // 获取选中删除行索引值 NSInteger row = [indexPath row]; // 通过获取的索引值删除数组中的值 [self.listData removeObjectAtIndex:row]; // 删除单元格的某一行时,在用动画效果实现删除过程 [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } }
删除了张四 效果图:
[img]
[/img]
4.添加
实现方法和删除方法相同,首先还是返回单元格编辑风格
//单元格返回的编辑风格,包括删除 添加 和 默认 和不可编辑三种风格 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleInsert; }
为了显示效果明显,在.h文件中声明一个变量i
#import <UIKit/UIKit.h> @interface STViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> { NSInteger i; } @property(strong,nonatomic) NSMutableArray *listData; @property(strong,nonatomic)UITableView *tableView; @property(strong,nonatomic)UITableViewCell *tableViewCell; @end
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle==UITableViewCellEditingStyleDelete) { // 获取选中删除行索引值 NSInteger row = [indexPath row]; // 通过获取的索引值删除数组中的值 [self.listData removeObjectAtIndex:row]; // 删除单元格的某一行时,在用动画效果实现删除过程 [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } if(editingStyle==UITableViewCellEditingStyleInsert) { i=i+1; NSInteger row = [indexPath row]; NSArray *insertIndexPath = [NSArray arrayWithObjects:indexPath, nil]; NSString *mes = [NSString stringWithFormat:@"添加的第%d行",i]; // 添加单元行的设置的标题 [self.listData insertObject:mes atIndex:row]; [tableView insertRowsAtIndexPaths:insertIndexPath withRowAnimation:UITableViewRowAnimationRight]; } }
运行效果图:
[img]
[/img]
在删除和添加单元格的用到UITableViewRowAnimation动画效果,它还有其他几种效果,在此不做测试
UITableViewRowAnimationAutomatic UITableViewRowAnimationTop
UITableViewRowAnimationBottom UITableViewRowAnimationLeft
UITableViewRowAnimationRight UITableViewRowAnimationMiddle
UITableViewRowAnimationFade UITableViewRowAnimationNone
- SampleTable2.zip (107.1 KB)
- 下载次数: 1
发表评论
-
新风作浪博客学习(十九)在iOS虚拟键盘上添加动态隐藏按钮
2013-06-08 09:19 858为了给用户比较良好的交付,想在键盘上添加一个按钮,实时根据键盘 ... -
新风作浪博客学习(十八)openURL的使用(iOS调用系统电话、浏览器、地图、邮件等) .
2013-06-08 09:19 1002今天遇见一行代码实现打开一个网页,比起印象里的UIWebVie ... -
新风作浪博客学习(十七)UIImageView响应点击事件 .
2013-06-08 09:19 703有时候会遇到点击一张图片,然后让这张图片触发一个事件,或者是跳 ... -
新风作浪博客学习(十六)Navigation + Tab Bar 常用组合框架 .
2013-06-07 08:50 1248看到很多项目中都采用的是Navigation加Tab Bar组 ... -
新风作浪博客学习(十五)google地图定位小Demo .
2013-06-07 08:50 1138[img][/img]今天写的是一个简单功能的google地图 ... -
新风作浪博客学习(十四)怎样向iPhone模拟器中添加图片 .
2013-06-07 08:50 785在我们做项目中可能需要使用图库,模拟器是有图库的,但是如何像其 ... -
新风作浪博客学习(十三)表视图的分组分区和索引分区 .
2013-06-07 08:50 794本次实现的是表视图的分区和索引,代码和前面都差不多,主要还是代 ... -
新风作浪博客学习(十二)代码实现UITableViewCell表视图单元定制 .
2013-06-07 08:49 997通常情况下我们会希望单元格UITableViewCell显示自 ... -
新风作浪博客学习(十)代码实现 UITableView与UITableViewCell .
2013-06-06 09:14 1153我们常用的表格类视图就是用 UITableView与UITab ... -
新风作浪博客学习(九)两个UIPickerView控件间的数据依赖 .
2013-06-06 09:14 1070本篇实现功能是两个选取器的关联操作,滚动第一个滚轮第二个滚 ... -
新风作浪博客学习(八)代码实现UIPickerView .
2013-06-06 09:14 1282先说一下当个组件选取器,我们创建一个数组NSAray来保存选取 ... -
新风作浪博客学习(七)代码 实现UIDatePicker控件 和 Tab Bar 视图切换 .
2013-06-06 09:15 1107感觉代码写控件都一个理,先在ViewDidLoad中创建控件对 ... -
新风作浪博客学习(六)ios 视图切换翻页效果 .
2013-06-05 11:18 1059本文写的是视图切换,涉及到的内容有 1.实现代码添加Navi ... -
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
2013-02-18 09:15 1148本次实现的UISlider和UISwi ... -
新风作浪博客学习(四)把plist里数据显示在textField上 .
2013-02-18 09:15 915在代码实现Lable 、textFie ... -
新风作浪博客学习(三)NSBundle读取图片 plist文件和txt文件
2013-02-18 09:15 1727本文想简单介绍一下NSBundle读取图片到视图上,读取pli ... -
新风作浪博客学习(二)代码实现Lable 、textField创建界面以及键盘的处理
2013-02-18 09:15 1173今天写的是用代码实现一个简单界面,代码重复率比较高,可读性不是 ... -
新风作浪博客学习(一)plist文件读写操作
2013-02-18 09:14 1361文件plist 全名Property List,属性列表文件, ... -
GCDiscreetNotificationView提示视图
2013-06-05 11:17 558先看一下效果图: [img] ... -
iphone开发之适配iphone5
2013-06-05 11:15 1092iphone5出来了,从不用适配的我们也要像android一样 ...
相关推荐
总的来说,掌握UITableViewCell的标记、移动、删除和插入是提升iOS应用用户体验的关键。理解并熟练运用这些功能,可以让你的列表视图更加灵活,满足各种用户交互需求。在实践中不断探索和优化,你将能够构建出更加...
### iOS开发UITableViewCell自定义详解 在iOS开发过程中,UITableView是一种非常常见的UI组件,它能够以列表的形式展示数据。而UITableViewCell则是构成UITableView的基本单元。很多时候,我们需要对这些单元进行...
当项目需求涉及用户可以选择多个列表项时,我们通常需要对UITableViewCell进行自定义来实现多选功能。在这个"ios-UItableViewCell自定义多选的cell.zip"压缩包中,包含的"TableViewDidSelectDemo"很可能是演示如何...
而题目中的"iOS UITableViewCell 单选 Button设置image"涉及到的是如何在UITableViewCell中添加一个可选择的按钮,并根据用户的选择状态来改变该按钮上的图像。这个功能在很多应用场景中都很常见,比如设置界面、...
使用SDAutoLayout 自适应UITableViewCell 自适应, Cell上需要展示三个属性右侧图片,titleLabel, textLabel, timeLabel. 四个属性, 需要自适应的label为 textLabel1, 白 糗事百科的数据接口封装在model中 然后添加在...
开发中常用的移动、删除、添加; 移动: 1:数据源 2:移除方法: - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {...
这个压缩包文件“IOS应用源码——在UIPickerView 选择时,UITableViewCell自动填充值.rar”显然包含了一个示例项目,演示了如何在用户在UIPickerView中进行选择时,自动更新UITableView中的单元格(UITableViewCell...
在UIPickerView 选择时,UITableViewCell自动填充值.zipIOS应用例子源码下载在UIPickerView 选择时,UITableViewCell自动填充值.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司...
本项目“继承UITableViewCell定制表格行.zip”关注的是如何通过继承UITableViewCell来创建自定义的表格行,从而实现更加丰富的显示效果和交互功能。下面将详细解释这个知识点。 首先,我们需要理解UITableViewCell...
通过分析和学习这个Demo,开发者不仅可以掌握自定义UITableViewCell的方法,还能了解到如何将理论知识应用于实际项目,这对于毕业设计和论文写作是非常有价值的。同时,这样的实践也有助于提升问题解决和代码组织的...
总之,"ios源码之UITableViewCell 视图扩展Demo"是一个学习如何在iOS应用中有效利用和扩展UITableViewCell的实践案例。通过这个Demo,开发者可以深入理解UITableView的工作原理,掌握自定义cell的技巧,提升iOS应用...
本项目“ios-UITableViewCell折叠效果.zip”主要关注如何实现UITableView中UITableViewCell的动态高度调整以及折叠拉伸效果,这是一项增强用户体验的重要技巧。下面我们将深入探讨这个主题。 首先,我们来理解`...
UITableViewCell 视图扩展.zipIOS应用例子源码下载UITableViewCell 视图扩展.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
主要代码: 1. _tableView.rowHeight = UITableViewAutomaticDimension; _tableView.estimatedRowHeight = 44.0; 2. [cell setNeedsUpdateConstraints];... [cell updateConstraintsIfNeeded];...
本项目 "IOS应用源码——在UIPickerView 选择时,UITableViewCell自动填充值.zip" 主要探讨如何在用户在UIPickerView 中进行选择时,自动更新UITableView 中对应的UITableViewCell 的内容。 首先,我们需要理解...
标题 "IOS应用源码——UITableViewCell 视图扩展.zip" 提供了一个关于iOS应用程序开发的知识点,特别是关于`UITableViewCell`的视图扩展。在iOS开发中,`UITableViewCell`是用于显示表视图(UITableView)中的每一行...
在iOS应用开发中,UIPickerView和UITableViewCell是两个常见的组件,它们在用户界面设计中扮演着重要的角色。此压缩包中的源码示例主要展示了如何在用户使用UIPickerView进行选择时,动态地将选定值填充到...
在iOS应用开发中,UIPickerView和UITableViewCell是两个常见的组件,它们经常被用来构建用户界面。这个源码示例展示了如何在用户使用UIPickerView进行选择时,动态地将所选值填充到UITableViewCell中,从而提供更...