- 浏览: 535005 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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-----------新浪微博
Table View的简单使用 这篇,这里主要讲UITableView 中的Cell的操作,包括标记、移动、删除、插入。
为了简单快捷,直接从原来那篇的代码开始.
要进行数据的操作了,把代码里的不可变数组改成可变的:
NSArray *list -》NSMutableArray *list
1、标记Cell。
[img]
[/img]
打开项目,
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。
添加代码
标记分别有四种效果:
UITableViewCellAccessoryCheckmark
UITableViewCellAccessoryDetailDisclosureButton
UITableViewCellAccessoryDisclosureIndicator
UITableViewCellAccessoryNone
2、删除Cell
想要实现移动或者删除行这样的操作,需要启动表格的编辑模式。使用的是setEditing:animated:方法。
打开xib,生成Table的IBoutlet映射 tableView;
在viewDidload里添加
[self.tableViewsetEditing:YES];
这是启动运行程序,
[img]
[/img]
打开可编辑模式,默认情况显示删除的图标的。
实现删除的代码:
这个方法根据参数editingStyle是UITableViewCellEditingStyleDelete
在这删除行的方法又出现了一个常量:UITableViewRowAnimationAutomatic,它表示删除时的效果,类似的常量还有:
UITableViewRowAnimationAutomatic
UITableViewRowAnimationTop
UITableViewRowAnimationBottom
UITableViewRowAnimationLeft
UITableViewRowAnimationRight
UITableViewRowAnimationMiddle
UITableViewRowAnimationFade
UITableViewRowAnimationNone
从常量名称打开可以看出效果来。
这是运行,就可以删除其中的一个Cell行了。
3、移动Cell
添加代码如下:
3.1先把默认的删除的图标去掉
3.2返回当前Cell是否可以移动
3.3执行移动操作
运行程序
[img]
[/img]
怎么移动呢?不要以为按住行的任何地方都能移动,要按住最左边的三道杠的图标才能拖动移动
4、插入cell:
4.1插入和删除差不多,在
- (void)tableView:(UITableView *)tableView commitEditingStyle:
(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
添加UITableViewCellEditingStyleInsert判断
4.2 修改图标为插入样式。
运行,点加号图标,
[img]
[/img]
为了简单快捷,直接从原来那篇的代码开始.
要进行数据的操作了,把代码里的不可变数组改成可变的:
NSArray *list -》NSMutableArray *list
1、标记Cell。
[img]
[/img]
打开项目,
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。
添加代码
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ // NSString *rowString = [self.list objectAtIndex:[indexPath row]]; // UIAlertView * alter = [[UIAlertView alloc] initWithTitle:@"选中的行信息" message:rowString delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; // [alter show]; UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; if (cell.accessoryType == UITableViewCellAccessoryNone) { cell.accessoryType = UITableViewCellAccessoryCheckmark; }else { cell.accessoryType = UITableViewCellAccessoryNone; } [tableView deselectRowAtIndexPath:indexPath animated:YES]; }
标记分别有四种效果:
UITableViewCellAccessoryCheckmark
UITableViewCellAccessoryDetailDisclosureButton
UITableViewCellAccessoryDisclosureIndicator
UITableViewCellAccessoryNone
2、删除Cell
想要实现移动或者删除行这样的操作,需要启动表格的编辑模式。使用的是setEditing:animated:方法。
打开xib,生成Table的IBoutlet映射 tableView;
在viewDidload里添加
[self.tableViewsetEditing:YES];
这是启动运行程序,
[img]
[/img]
打开可编辑模式,默认情况显示删除的图标的。
实现删除的代码:
- (void)tableView:(UITableView *)tableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = [indexPath row]; if (editingStyle == UITableViewCellEditingStyleDelete) { [self.list removeObjectAtIndex:row]; [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } }
这个方法根据参数editingStyle是UITableViewCellEditingStyleDelete
在这删除行的方法又出现了一个常量:UITableViewRowAnimationAutomatic,它表示删除时的效果,类似的常量还有:
UITableViewRowAnimationAutomatic
UITableViewRowAnimationTop
UITableViewRowAnimationBottom
UITableViewRowAnimationLeft
UITableViewRowAnimationRight
UITableViewRowAnimationMiddle
UITableViewRowAnimationFade
UITableViewRowAnimationNone
从常量名称打开可以看出效果来。
这是运行,就可以删除其中的一个Cell行了。
3、移动Cell
添加代码如下:
3.1先把默认的删除的图标去掉
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleInsert; }
3.2返回当前Cell是否可以移动
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; }
3.3执行移动操作
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *) sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { NSUInteger fromRow = [sourceIndexPath row]; NSUInteger toRow = [destinationIndexPath row]; id object = [self.list objectAtIndex:fromRow]; [self.list removeObjectAtIndex:fromRow]; [self.list insertObject:object atIndex:toRow]; }
运行程序
[img]
[/img]
怎么移动呢?不要以为按住行的任何地方都能移动,要按住最左边的三道杠的图标才能拖动移动
4、插入cell:
4.1插入和删除差不多,在
- (void)tableView:(UITableView *)tableView commitEditingStyle:
(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
添加UITableViewCellEditingStyleInsert判断
- (void)tableView:(UITableView *)tableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger row = [indexPath row]; if (editingStyle == UITableViewCellEditingStyleDelete) { [self.list removeObjectAtIndex:row]; [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; }else if(editingStyle == UITableViewCellEditingStyleInsert ){ NSArray *insertIndexPaths = [NSArray arrayWithObjects:indexPath,nil]; [self.list insertObject:@"inset new Cell" atIndex:row]; [tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationMiddle]; } }
4.2 修改图标为插入样式。
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleInsert; }
运行,点加号图标,
[img]
[/img]
发表评论
-
新风作浪博客学习(十九)在iOS虚拟键盘上添加动态隐藏按钮
2013-06-08 09:19 860为了给用户比较良好的交付,想在键盘上添加一个按钮,实时根据键盘 ... -
新风作浪博客学习(十八)openURL的使用(iOS调用系统电话、浏览器、地图、邮件等) .
2013-06-08 09:19 1004今天遇见一行代码实现打开一个网页,比起印象里的UIWebVie ... -
新风作浪博客学习(十七)UIImageView响应点击事件 .
2013-06-08 09:19 705有时候会遇到点击一张图片,然后让这张图片触发一个事件,或者是跳 ... -
新风作浪博客学习(十六)Navigation + Tab Bar 常用组合框架 .
2013-06-07 08:50 1253看到很多项目中都采用的是Navigation加Tab Bar组 ... -
新风作浪博客学习(十五)google地图定位小Demo .
2013-06-07 08:50 1141[img][/img]今天写的是一个简单功能的google地图 ... -
新风作浪博客学习(十四)怎样向iPhone模拟器中添加图片 .
2013-06-07 08:50 786在我们做项目中可能需要使用图库,模拟器是有图库的,但是如何像其 ... -
新风作浪博客学习(十三)表视图的分组分区和索引分区 .
2013-06-07 08:50 801本次实现的是表视图的分区和索引,代码和前面都差不多,主要还是代 ... -
新风作浪博客学习(十二)代码实现UITableViewCell表视图单元定制 .
2013-06-07 08:49 1001通常情况下我们会希望单元格UITableViewCell显示自 ... -
新风作浪博客学习(十一)UITableViewCell的标记、移动、删除、插入 .
2013-06-06 09:15 1118这篇文章是建立在 代码实现 UITableView与UITa ... -
新风作浪博客学习(十)代码实现 UITableView与UITableViewCell .
2013-06-06 09:14 1155我们常用的表格类视图就是用 UITableView与UITab ... -
新风作浪博客学习(九)两个UIPickerView控件间的数据依赖 .
2013-06-06 09:14 1072本篇实现功能是两个选取器的关联操作,滚动第一个滚轮第二个滚 ... -
新风作浪博客学习(八)代码实现UIPickerView .
2013-06-06 09:14 1284先说一下当个组件选取器,我们创建一个数组NSAray来保存选取 ... -
新风作浪博客学习(七)代码 实现UIDatePicker控件 和 Tab Bar 视图切换 .
2013-06-06 09:15 1108感觉代码写控件都一个理,先在ViewDidLoad中创建控件对 ... -
新风作浪博客学习(六)ios 视图切换翻页效果 .
2013-06-05 11:18 1061本文写的是视图切换,涉及到的内容有 1.实现代码添加Navi ... -
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
2013-02-18 09:15 1153本次实现的UISlider和UISwi ... -
新风作浪博客学习(四)把plist里数据显示在textField上 .
2013-02-18 09:15 918在代码实现Lable 、textFie ... -
新风作浪博客学习(三)NSBundle读取图片 plist文件和txt文件
2013-02-18 09:15 1731本文想简单介绍一下NSBundle读取图片到视图上,读取pli ... -
新风作浪博客学习(二)代码实现Lable 、textField创建界面以及键盘的处理
2013-02-18 09:15 1174今天写的是用代码实现一个简单界面,代码重复率比较高,可读性不是 ... -
新风作浪博客学习(一)plist文件读写操作
2013-02-18 09:14 1363文件plist 全名Property List,属性列表文件, ... -
GCDiscreetNotificationView提示视图
2013-06-05 11:17 559先看一下效果图: [img] ...
相关推荐
以上就是在Swift中自定义UITableView的Cell,以及处理数据的添加、删除和刷新的基本操作。这只是一个基础的指南,实际项目中可能需要考虑更多细节,如动画效果、异步数据加载、错误处理等。通过不断地实践和学习,你...
5. 在`tableView(_:cellForRowAt:)`中,通过父类指针操作子类cell,这样可以在父类中处理一些共有的逻辑,而不需要在每个子类中重复实现。 通过这样的设计,我们不仅能够保持代码的整洁,还能减少冗余,提高代码的...
通过以上步骤,我们就可以在UITableView中实现目录效果,使得用户可以方便地在列表中浏览和操作。这个功能增加了交互性,提高了用户体验,对于那些包含复杂结构或多层次信息的App来说尤其有用。在实际开发中,可以...
在实际应用中,我们经常需要实现对UITableView中的单元格(Cell)进行删除操作。本Demo代码着重展示了如何在UITableView中删除Cell,让我们来详细探讨这个过程。 首先,为了删除单元格,我们需要遵循...
在iOS开发中,UITableView是展示数据列表常用的控件,它允许用户进行滚动和交互操作。在某些场景下,我们可能需要实现自定义的动画效果,比如相邻cell的交换。这个"ios-UITableView 相邻cell交换简单动画.zip"项目...
当我们需要对UITableView的显示效果进行个性化定制时,通常会涉及到自定义Cell的操作。本项目"UITableView自定义Cell-SB.zip"显然是一个关于如何在Storyboard中创建自定义Cell,并结合Model数据模型进行使用的教程。...
这个场景在"ios-UITableView的cell移动位置.zip"的示例中得到了体现。在描述中提到,当用户拖动cell后,再次进入界面时,cell仍保持在拖动后的位置,这涉及到UITableView的数据源管理以及状态保存。 首先,我们要...
本文将深入探讨UITableView中的Cell操作,包括增删插入和移动等操作。 首先,我们需要理解UITableView的基本结构。UITableView由多个UITableViewCell组成,每个Cell对应数据源中的一个条目。我们可以通过实现...
要在UITableView中增加Cell,你需要操作数据源(通常是数组),然后调用`reloadData`方法更新表格。例如,当用户点击“添加”按钮时,可以在数据源中添加新的数据对象,然后通过`insertRows(at:with:)`方法插入对应...
在iOS开发中,`UITableView`是用于展示列表数据的核心组件,而给`UITableViewCell`添加边线阴影以及渐变效果能够提升界面的视觉层次感和用户体验。这篇内容将深入讲解如何实现`UITableView`的cell边线阴影及渐变设计...
在iOS开发中,UITableView是展示数据列表常用的控件,而为UITableView的Cell添加侧滑功能可以为用户提供便捷的操作选项,比如删除、编辑等。本文将详细介绍如何实现“ios UITableView cell侧滑”这一功能,以及如何...
8. **事件处理**:如果需要Cell被点击后执行某些操作,比如跳转到详情页面,可以实现UITableViewDelegate的`- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`方法,...
本示例“ios-长按即可移动cell的自定义UITableView”提供了一种创新的交互方式,允许用户通过长按来移动表格中的单元格(cell),提升用户体验。该功能通常在需要用户重新排序列表项的应用场景中非常实用,例如待办...
总的来说,掌握如何在UITableView中获取和操作特定位置的cell是iOS开发中的基本技能。这涉及到正确实现UITableViewDataSource和UITableViewDelegate协议,以及理解如何使用IndexPath来定位cell。通过提供的zip文件,...
以上就是关于"ios uitableview cell的展开收缩功能"的知识点详解,涵盖从数据源设计、界面定制到实际操作的完整流程。在实际开发中,这个功能可以根据需求进行各种定制,以适应不同场景下的用户体验需求。
在iOS开发中,UITableView是展示数据的常用控件,它的工作原理是通过重用Cell来提高性能。然而,系统默认的UITableViewCell样式有限,为了满足更丰富的界面设计需求,开发者经常需要自定义UITableViewCell。本主题将...
在iOS开发中,实现UITableView中每个cell具有不同的倒计时是一项常见的需求。在这个场景中,我们需要处理的关键点是如何高效地管理多个倒计时并确保在界面更新时的正确性。以下是一个具体的实现策略: 首先,我们...
在UITableView中,每个Cell都是独立的,可以通过重写`UITableViewDataSource`的相关方法来决定Cell的显示内容和数量。要实现折叠效果,我们需要添加一个开关(如UIButton或UISwitch)到Cell中,当用户触发这个开关时...
最后,UITableView支持多种自定义功能,包括但不限于:自定义单元格的外观,设置行高,实现滑动操作,添加头尾视图,以及使用异步加载优化性能。在实际开发中,灵活运用这些特性可以构建出丰富多样的用户界面。 ...
在UICollectionView中,移动一个单元格涉及到两个主要步骤:捕获用户的拖动操作和处理单元格的重排。Swift中的UICollectionView提供了相应的API来支持这一过程。 1. 实现UICollectionViewDelegateFlowLayout协议 ...