IOS之表视图单元格删除、移动及插入_移动开发_编程开发_程序员俱乐部
中国优秀的程序员网站
程序员频道
CXYCLUB技术
地图
最新资讯
|
百度新闻
|
GOOGLE地图
|
RSS订阅
|
更多
职场话题
生活休闲
恋爱交友
程序人生
学习进修
职业发展
项目管理
求职面试
程序员创业
JAVA
.NET
C/C++
Ruby
Delphi
JavaScript
PHP
ASP
JSP
HTML
XML
移动开发
开发工具
其他
编程开发
数据库
操作系统
新闻资讯
互联网
非技术区
非技术区
生活休闲
恋爱交友
职业发展
求职面试
程序人生
移动开发
开发工具
DB2
MySql
Sybase
开发
JAVA
.NET
PHP
C/C++
数据库
SQL Server
Oracle
互联网
运营
推广
营销
SEO
系统
Linux
Unix
Windows
资讯
动态
产品
人物
创业
职场
学习
管理
热搜:
循环
class
Win8
Amazon
摄像头
NullPointerException
removeview
viewgroup
onAnimationEnd
二维码
controller
异步
同步
编码
冒泡排序
循环
class
Win8
Amazon
摄像头
NullPointerException
removeview
viewgroup
onAnimationEnd
二维码
更多>>
您所在的位置:
程序员俱乐部
>
编程开发
>
移动开发
> IOS之表视图单元格删除、移动及插入
IOS之表视图单元格删除、移动及插入
2014/7/24 10:22:31 wx0123
程序员俱乐部
我要评论(
0
)
摘要:
1.实现单元格的删除,实现效果如下Cpp代码-(void)viewDidLoad{[superviewDidLoad];//设置导航栏self.editButtonItem.title=@"编辑";self.navigation.rightBarButtonItem=self.editButtonItem;[selfinitTableViewData];//Doanyadditionalsetupafterloadingtheview.}-(void
标签:
iOS
1.实现单元格的删除,实现效果如下
Cpp代码
class="Apple-converted-space">
javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash">
ViewData%5D%3B%0A%09%2F%2F%20Do%20any%20additional%20setup%20after%20loading%20the%20view.%0A%7D%0A%0A-%20(void)didReceiveMemoryWarning%0A%7B%0A%20%20%20%20%5Bsuper%20didReceiveMemoryWarning%5D%3B%0A%20%20%20%20%2F%2F%20Dispose%20of%20any%20resources%20that%20
can
%20be%20re
created
.%0A%7D%0A%0A-(void)initTableViewData%7B%0A%20%20%20%20NSBundle%20*bundle%20%3D%20%5BNSBundle%20mainBundle%5D%3B%0A%20%20%20%20NSString%20*plistPath%20%3D%20%5Bbundle%20pathForResource%3A%40%22user_head%22%20ofType%3A%40%22plist%22%5D%3B%0A%20%20%20%20dataArr%20%3D%20%5B%5BNSMutableArray%20alloc%5D%20initWithContentsOfFile%3AplistPath%5D%3B%0A%7D%0A%0A-%20(NSInteger)tableView%3A(UITableView%20*)tableView%20numberOfRowsInSection%3A(NSInteger)section%0A%7B%0A%20%20%20%20return%20%5BdataArr%20count%5D%3B%0A%7D%0A%0A-%20(UITableViewCell%20*)tableView%3A(UITableView%20*)tableView%20cellForRowAtIndexPath%3A(NSIndexPath%20*)indexPath%0A%7B%0A%20%20%20%20static%20NSString%20*CellIdentifier%20%3D%20%40%22tableCell%22%3B%0A%20%20%20%20UITableViewCell%20*cell%20%3D%20%5BtableView%20dequeueReusableCellWithIdentifier%3ACellIdentifier%5D%3B%0A%20%20%20%20%0A%20%20%20%20NSUInteger%20row%20%3D%20%5BindexPath%20row%5D%3B%0A%20%20%20%20NSDictionary%20*rowDict%20%3D%20%5BdataArr%20objectAtIndex%3Arow%5D%3B%0A%20%20%20%20cell.textLabel.text%20%3D%20%20%5BrowDict%20objectForKey%3A%40%22itemName%22%5D%3B%0A%20%20%20%20NSLog(%40%22cell.label.text%20%3D%20%20%25%40%22%2C%5BrowDict%20objectForKey%3A%40%22itemName%22%5D)%3B%0A%20%20%20%20%0A%20%20%20%20NSString%20*imagePath%20%3D%20%5BrowDict%20objectForKey%3A%40%22itemImagePath%22%5D%3B%0A%20%20%20%20cell.
imageView
.image%20%3D%20%5BUIImage%20imageNamed%3AimagePath%5D%3B%0A%20%20%20%20NSLog(%40%22cell.image.image%20%20%3D%20%20%25%40%22%2CimagePath)%3B%0A%20%20%20%20%0A%20%20%20%20cell.accessoryType%20%3D%20UITableViewCellAccessoryDisclosureIndicator%3B%0A%20%20%20%20%0A%20%20%20%20return%20cell%3B%0A%7D%0A%0A%2F%2F%E9%80%89%E4%B8%ADCell%E5%93%8D%E5%BA%94%E4%BA%8B%E4%BB%B6%0A-%20(void)tableView%3A(UITableView%20*)tableView%20didSelectRowAtIndexPath%3A(NSIndexPath%20*)indexPath%7B%0A%20%20%20%20%5BtableView%20deselectRowAtIndexPath%3AindexPath%20animated%3AYES%5D%3B%2F%2F%E9%80%89%E4%B8%AD%E5%90%8E%E7%9A%84%E5%8F%8D%E6%98%BE%E9%A2%9C%E8%89%B2%E5%8D%B3%E5%88%BB%E6%B6%88%E5%A4%B1%0A%20%20%20%20NSUInteger%20row%20%3D%20%5BindexPath%20row%5D%3B%0A%20%20%20%20NSDictionary%20*rowDict%20%3D%20%5BdataArr%20objectAtIndex%3Arow%5D%3B%0A%20%20%20%20NSString%20*userName%20%3D%20%20%5BrowDict%20objectForKey%3A%40%22itemName%22%5D%3B%0A%20%20%20%20NSLog(%40%22userName%3D%25%40%22%2CuserName)%3B%0A%7D%0A%0A%2F%2F%E8%BF%94%E5%9B%9E%E7%BC%96%E8%BE%91%E7%8A%B6%E6%80%81%E7%9A%84style%0A-%20(UITableViewCellEditingStyle)tableView%3A(UITableView%20*)tableView%0A%20%20%20%20%20%20%20%20%20%20%20editingStyleForRowAtIndexPath%3A(NSIndexPath%20*)indexPath%0A%7B%0A%20%20%20%20%2F%2FUITableViewCellEditingStyleInsert%0A%2F%2F%20%20%20%20return%20UITableViewCellEditingStyleNone%3B%0A%20%20%20%20return%20UITableViewCellEditingStyleDelete%3B%0A%7D%0A%2F%2F%E5%AE%8C%E6%88%90%E7%BC%96%E8%BE%91%E7%9A%84%E8%A7%A6%E5%8F%91%E4%BA%8B%E4%BB%B6%0A-%20(void)tableView%3A(UITableView%20*)tableView%20commitEditingStyle%3A(UITableViewCellEditingStyle)editingStyle%0AforRowAtIndexPath%3A(NSIndexPath%20*)indexPath%0A%7B%0A%20%20%20%20if%20(editingStyle%20%3D%3D%20UITableViewCellEditingStyleDelete)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%5BdataArr%20removeObjectAtIndex%3A%20indexPath.row%5D%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20%20%20%20%20%20%20%20%5BtableView%20insertRowsAtIndexPaths%3A%5BNSArray%20arrayWithObject%3AindexPath%5D%0A%20%20%20%20%20%20%20%20%2F%2F%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20withRowAnimation%3AUITableViewRowAnimationFade%5D%3B%0A%20%20%20%20%20%20%20%20%5BtableView%20deleteRowsAtIndexPaths%3A%5BNSArray%20arrayWithObject%3AindexPath%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20withRowAnimation%3AUITableViewRowAnimationFade%5D%3B%0A%20%20%20%20%20%20%20%20%5BtableView%20reloadData%5D%3B%0A%20%20%20%20%7D%20%0A%7D%0A%2F%2FUIViewController%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E6%96%B9%E6%B3%95%EF%BC%8C%E7%94%A8%E4%BA%8E%E5%93%8D%E5%BA%94%E8%A7%86%E5%9B%BE%E7%BC%96%E8%BE%91%E7%8A%B6%E6%80%81%E5%8F%98%E5%8C%96%0A-%20(void)setEditing%3A(BOOL)editing%20animated%3A(BOOL)animated%20%7B%0A%20%20%20%20%5Bsuper%20setEditing%3Aediting%20animated%3Aanimated%5D%3B%0A%20%20%20%20%0A%20%20%20%20%5Bself.tableView%20setEditing%3Aediting%20animated%3AYES%5D%3B%0A%20%20%20%20if%20(self.editing)%20%7B%0A%20%20%20%20%20self.editButtonItem.title%20%3D%20%40%22%E5%AE%8C%E6%88%90%22%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20self.editButtonItem.title%20%3D%20%40%22%E7%BC%96%E8%BE%91%22%3B%0A%20%20%20%20%7D%0A%7D%0A%40end%0A" />
ways" />
- (
void)viewDidLoad
{
[super viewDidLoad];
//设置导航栏
self.editButtonItem.title = @
"编辑";
self.navigation.rightBarButtonItem = self.editButtonItem;
[self initTableViewData];
// Do any additional setup after loading the view.
}
- (
void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(
void)initTableViewData{
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@
"user_head" ofType:@
"plist"];
dataArr = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [dataArr count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @
"tableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSUInteger row = [indexPath row];
NSDictionary *rowDict = [dataArr objectAtIndex:row];
cell.textLabel.text = [rowDict objectForKey:@
"itemName"];
NSLog(@
"cell.label.text = %@",[rowDict objectForKey:@
"itemName"]);
NSString *imagePath = [rowDict objectForKey:@
"itemImagePath"];
cell.imageView.image = [UIImage imageNamed:imagePath];
NSLog(@
"cell.image.image = %@",imagePath);
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
//选中Cell响应事件
- (
void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
//选中后的反显颜色即刻消失
NSUInteger row = [indexPath row];
NSDictionary *rowDict = [dataArr objectAtIndex:row];
NSString *userName = [rowDict objectForKey:@
"itemName"];
NSLog(@
"userName=%@",userName);
}
//返回编辑状态的style
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
//UITableViewCellEditingStyleInsert
// return UITableViewCellEditingStyleNone;
return UITableViewCellEditingStyleDelete;
}
//完成编辑的触发事件
- (
void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[dataArr removeObjectAtIndex: indexPath.row];
// [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
// withRowAnimation:UITableViewRowAnimationFade];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
[tableView reloadData];
}
}
//UIViewController生命周期方法,用于响应视图编辑状态变化
- (
void)setEditing:(
BOOL)editing animated:(
BOOL)animated {
[super setEditing:editing animated:animated];
[self.tableView setEditing:editing animated:YES];
if (self.editing) {
self.editButtonItem.title = @
"完成";
}
else {
self.editButtonItem.title = @
"编辑";
}
}
@end
2.移动单元格
Cpp代码
//完成移动的触发事件,不添加该方法不实现移动功能
- (
void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath*)sourceIndexPath
toIndexPath:(NSIndexPath *)destinationIndexPath
{
NSDictionary *item = [dataArr objectAtIndex:sourceIndexPath.row];
[dataArr removeObjectAtIndex:sourceIndexPath.row];
[dataArr insertObject:item atIndex:destinationIndexPath.row];
}
3.添加单元格。下面是
自定义
触发事件,即单击左下角的add按钮
Cpp代码
- (IBAction)addistItem:(UIBarButtonItem *)sender {
AppUtils *appUtils = [AppUtils alloc];
//需要先初始化一个UIAlertView
UIAlertView *alert = [UIAlertView alloc];
[appUtils showInputDialogWithTitle:@
"add" message:@
"please input new user name:" toAlertView:alert confirmAction:(^{
//得到输入框
UITextField *textField=[alert textFieldAtIndex:0];
// 不要写成NSMutableDictionary *newItem = [NSDictionary dictionary];
NSMutableDictionary *newItem = [NSMutableDictionary dictionary];
[newItem setObject:textField.text forKey:@
"itemName"];
[newItem setObject:@
"1.jpeg" forKey:@
"itemImagePath"];
[dataArr addObject:newItem];
[self.tableView reloadData];
})];
}
4.附上·AppUtils类
Cpp代码
#import "AppUtils.h"
#include "RIButtonItem.h"
#include "UIAlertView+Blocks.h"
@implementation AppUtils
//弹出警告框,并实现警告框按钮的触发事件
- (
void)showInputDialogWithTitle:(NSString *)title message:(NSString *)message toAlertView:(UIAlertView*) alert confirmAction:(
void(^)(
void))action{
RIButtonItem* cancelItem = [RIButtonItem item];
cancelItem.label = @
"No";
cancelItem.action = ^
{
//为NO时的处理
UITextField *tf=[alert textFieldAtIndex:0];
NSLog(@
"UITextField=%@",tf.text);
};
RIButtonItem* confirmItem = [RIButtonItem item];
confirmItem.label = @
"Yes";
// confirmItem.action = action;
alert = [alert initWithTitle:title
message:message
cancelButtonItem:cancelItem
otherButtonItems:confirmItem, nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
confirmItem.action = action;
[alert show];
}
@end
上一篇:
ASP.NET MVC 视图(四)
下一篇: 没有下一篇了!
相关文章
·
IOS开发复习笔记(3)-ARC
·
IOS之表视图单元格删除、移动及插入
·
QQ群里收集的外企iOS开发的笔试题
·
iOS网络编程同步GET方法请求编程
·
苹果iOS被曝存在多个秘密后门
·
识别iOS设备的后门和监视机制
·
编译VLC for IOS
·
IOS开发经验分享
·
iOS学习笔记(6)键值编码——KVC
·
斯坦福iOS7公开课7-9笔记及演示De
查看所有评论(
0
)
我要评论
发表评论
用户名:
匿名
最新文章
最新标签
循环
class
Win8
Amazon
摄像头
NullPointerException
removeview
viewgroup
onAnimationEnd
二维码
今日热点
推荐文章
English
|
关于我们
|
诚聘英才
|
联系我们
|
网站大事
|
友情链接
|
意见反馈
|
网站地图
Powered by
程序员俱乐部
程序提供: HugoCMS 2.0
网站备案:苏ICP备11048748号-1