【问题标题】:Recommendation for editing/deleting section编辑/删除部分的建议
【发布时间】:2010-08-10 07:42:29
【问题描述】:

Apple 关于 UITableView 的文档讨论了如何添加/编辑/删除行,但没有讨论添加/编辑/删除部分的详细信息,特别是关于 UI。在添加/删除行的情况下,您可以使用以下命令在行上应用“添加”和“删除”样式:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath;

但是,对于部分(我知道)没有这样的方法,可用于向用户显示可视控件以添加“+”或删除“-”部分。我可以使用用于新行的逻辑添加新部分,但是,我不确定如何删除整个部分(或允许用户编辑部分,例如部分标题)。我应该如何删除整个部分?

背景: 我正在开发基于核心数据的应用程序。我在实体之间有一对多的关系。

Entity r (root)   <-->> Entity p (parent),
Entity p (parent) <-->> Entity c (child)

当用户创建父记录(实体 p)时,会自动创建固定的子记录集(实体 c)。在 UI 中,我在标题中显示父级(实体 p)的基本信息,例如标题,以及关联的子记录(实体 c)作为部分行,以及页脚中的一些摘要。由于某些逻辑原因,我不能选择向下钻取方法(以避免添加/删除部分)。

【问题讨论】:

    标签: iphone uitableview


    【解决方案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;
    

    【讨论】:

    • 我知道您提到的 UITableView 方法,并且我了解删除部分或添加新部分所涉及的逻辑。而且,_swipeToDeleteSection 是 UITableView 类的私有成员。它没有在 API 文档中公开,所以我猜即使我知道如何使用它,我的应用程序也不会被接受。
    • 啊,嗯。所以根本没有让你更接近......至少功能似乎存在。我猜 Apple 将其设为私有是因为他们决定不支持它或其他什么。
    • 等等,没关系,显然有一个 tableView:deleteSections:withRowAnimation: 方法。但我猜你的问题是让它支持滑动删除部分。
    • 替换了上面的答案。希望这次能有所帮助。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2020-12-14
    • 2012-05-05
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多