本文主要是介绍ios开发中对UITableView的操作(包括删除,插入,移动位置),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
UITableView是iOS开发中用的比较多的一些类,下面介绍一下对UITableView的代码变成操作。
要想对UITableView进行编辑操作,首先应设置UITableView为可编辑状态,示例代码如下:
self.pTableView.editing=!self.pTableView.isEditing ;
或者
[self.pTableViewsetEditing:!self.pTableView.isEditing];
然后是采用UITableViewDelegate协议下的(切记委托Delegate对象是当前UITableView所属于的对象)-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
方法进行设置能够被编辑的行,通过indexpath变量进行设置,返回YES是可编辑的,否则是不可编辑的。例如:
if ([indexPathrow]==0) {//设置第0行不可被编辑
return NO;
}
elsereturn YES;
然后是再进行编辑方式的设置(包括删除,插入,不改变),方法是
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
通过不同indexpath下的UITableViewCellEditingStyle的返回值,来设置编辑方式。如下:if ([indexPathrow]%3==0) {
returnUITableViewCellEditingStyleDelete;
}
else if([indexPathrow]%3==1)
returnUITableViewCellEditingStyleNone;
elsereturn UITableViewCellEditingStyleInsert;
然后是在方法
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath进行在编辑状态下对UITableView的操作:
if (editingStyle==UITableViewCellEditingStyleDelete) {
[self.pArrremoveObjectAtIndex:[indexPath row]];//删除存储UITableViewCell的textLabel的text内容的数组对应的内容
[self.pTableViewbeginUpdates];//开始更新
[self.pTableViewdeleteRowsAtIndexPaths:[NSArrayarrayWithObject:indexPath]withRowAnimation:UITableViewRowAnimationRight];//进行删除状态下操作,动画是向右移动删除
[self.pTableViewendUpdates];
}
elseif(editingStyle==UITableViewCellEditingStyleInsert)
{
[self.pArrinsertObject:@"newCell"atIndex:[indexPath row]];
[self.pTableViewbeginUpdates];
[self.pTableViewinsertRowsAtIndexPaths:[NSArrayarrayWithObject:indexPath]withRowAnimation:UITableViewRowAnimationTop];//进行插入状态下的操作,然后是动画是从上向下插入
[self.pTableViewendUpdates];
}
至此结束对UITableView的编辑操作。
最后是进行移动操作,移动操作和编辑操作相似,首先是需要设置可以移动的行,采用的方法是
-(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath通过不同indexpath情况下的返回值来设置。示例代码如下:
if ([indexPathrow]>10) {
return NO;
}
elsereturn YES;
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath进行移动操作,示例代码如下:
[self.pArrinsertObject:[self.pArrobjectAtIndex:[sourceIndexPath row]] atIndex:[destinationIndexPath row]];
[self.pArrremoveObjectAtIndex:[sourceIndexPath row]];
//因为移动只改变了行的相对位置,没有改变UITableView行的内容,所以只需要改变当前存储页面中的文本的数组的内容,来改变页面的重绘制形式就可以了。
这篇关于ios开发中对UITableView的操作(包括删除,插入,移动位置)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!