Apple关于UITableView的文档讨论了如何添加/编辑/删除行,但它没有讨论添加/编辑/删除部分的细节,特别是关于UI。如果添加/删除行,您可以使用以下方法在行上应用“添加”和“删除”样式:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath;
但是,对于(我所知道的)部分没有这样的方法,可以用来向用户显示添加“+”或删除“ - ”部分的可视控件。我可以使用用于新行的逻辑添加新的部分,但是,我不知道如何删除整个部分(或允许用户编辑部分,例如部分标题)。我应该如何删除整个部分?
背景 我正在开发基于Core Data的应用程序。我在实体之间有一对多的关系。
Entity r (root) <-->> Entity p (parent),
Entity p (parent) <-->> Entity c (child)
当用户创建父记录(实体p)时,会自动创建固定的子记录集(实体c)。在UI中,我在标题中显示父(实体p)的基本信息,例如标题,以及关联的子记录(实体c)作为节行,以及页脚中的一些摘要。出于某些逻辑原因,我不能选择深入分析方法(以避免添加/删除部分)。
答案 0 :(得分:1)
编辑:
由于您可以为部分定义自定义视图,最好的办法是用您自己的UIView替换现有的视图,当滑动时(使用手势)将删除该部分。您可以模仿右侧的红色删除按钮,或者当用户在某个部分上滑动时,您可以使用UIAlertView进行确认。
您将使用tableView:deleteSections:withRowAnimation:删除该部分。
以下SO问题深入探讨了主题:UITableView: deleting sections with animation
是:
首先,
// UITableView.h:311...
- (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
其次,
UIKIT_EXTERN_CLASS @interface UITableView : UIScrollView <NSCoding> {
// ...
NSInteger _swipeToDeleteSection;