[菜鸟成长记]iOS开发自学笔记03-UITableView初级进阶之cell的删除

  上一节在自定义UITableView表视图单元格的基础上,实现了一个简单的表视图界面,包含了一些自定义的界面元素在内。苹果的产品从iPhone到MAC都提供了多种多样的手势操作以彰显其操作的人性化,在如“邮件”等系统自带软件的表视图单元格中,每个单元格向左滑动即可在最右边出现删除按钮,以方便用户快速地对所选择行执行删除操作。其实实现这个功能并不难,仅仅只需要在ViewController中实现UITableViewDataSource协议中的方法

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

即使在方法定义中不执行任何操作,也能在单元格向左滑动的时候出现删除按钮。

  但是我最初在程序中添加上述方法的空声明后,向左滑动却并没有出现想像中的“删除”按钮,几经周折最后才发现原来是Main.storyboard选择的autolayout约束错误,导致程序运行后最右边的删除按钮实际上是在“藏”在屏幕之外了。解决方法:在Main.storyborad中按住control点击tableview拖箱viewcontroller点击选择equal width 和 equal height即可建立约束,在设备屏幕上完全显示出表格的内容,也能看到删除按钮了。

  事情到此还没有完全结束,仅仅把删除按钮显示出来是不够的,如果确实需要在点击对应的删除按钮后删除所选择的单元格,还需要在上述方法中实现具体的删除操作,即作用于后台数据的操作,比如:

    [clubName removeObjectAtIndex:indexPath.row];
    [clubLogo removeObjectAtIndex:indexPath.row];
    [clubRank removeObjectAtIndex:indexPath.row];
    
    [tableView reloadData];

并且重新加载该表视图才可以正确显示删除的效果。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。