添加底部工具栏和UITableViewCell的滑动删除
创新互联为客户提供专业的成都网站设计、网站制作、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、移动网站建设等网站方面业务。
一.添加底部工具栏
在工具栏上设置图标时可以使用系统自带图标也可以使用自定义图标,下面分别介绍这两种方法:
1.使用系统自带图标(编辑图标)
UIBarButtonItem *editItem = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemComposetarget:selfaction:@selector(editEventClick)];
2.使用自定义图标(删除图标)
UIBarButtonItem *deleteItem = [[UIBarButtonItemalloc]initWithImage:[UIImagep_w_picpathNamed:@"ic_delete.png"]style:UIBarButtonItemStylePlaintarget:selfaction:@selector(deleteEventClick)];
工具栏提示:
1.固定空间可以拥有宽度-----在所有UIBarButtonItem’中,只有UIBarButtonSystemItemFixedSpace条目可以被分配一个宽度,因此,创建空间条目,设置其宽度,然后在将其添加到条目列中。
UIBarButtonItem *fixItem1 = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];
fixItem1.width = 125;
NSArray *arrayItem = [NSArrayarrayWithObjects:fixItem1, editItem,fixItem2,deleteItem,nil];
[selfsetToolbarItems:arrayItem];
此处编辑图标是自定义的图片,删除图标是系统自带,在截图中可以看出二者的区别
运行之后效果图如下:
2.使用一个灵活空间进行左或右对齐-----在条目列表中开始添加一个’ UIBarButtonSystemITemFlexibleSpace会使所有剩余条目右对齐。在末尾添加一个,则左对齐,使用两个UIBarButtonSystemItemFlexibleSpace,一个在开头,一个添加在末尾,会使剩余条目居中对齐。
UIBarButtonItem *fixItem1 = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpacetarget:nilaction:nil];
NSArray *arrayItem = [NSArrayarrayWithObjects:fixItem1,deleteItem,fixItem2,editItem,fixItem2,nil];
[selfsetToolbarItems:arrayItem];
运行之后效果图如下:
(此处编辑图标和删除图标都是系统自带)
二.滑动删除
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
returnYES;
}
//定义编辑样式
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableVieweditingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
returnUITableViewCellEditingStyleDelete;
}
//进入编辑模式
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyleforRowAtIndexPath:(NSIndexPath *)indexPath {
//code
}
启用上面两个代理,并增加数据删除操作:
运行之后效果如下:
若让其左滑删除,则:(核心代码如下)
//取消TableView的右滑,保留左滑
UISwipeGestureRecognizer *swipeRight =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:nil];
swipeRight.direction =UISwipeGestureRecognizerDirectionRight;
[self. tableView addGestureRecognizer:swipeRight];