如何实现一个可编辑的 UITableView,类似于 Safari 书签?

Posted

技术标签:

【中文标题】如何实现一个可编辑的 UITableView,类似于 Safari 书签?【英文标题】:How to implement an editable UITableView, similar to Safari Bookmarks? 【发布时间】:2012-08-28 17:50:30 【问题描述】:

我正在尝试实现一个非常类似于 Mobile Safari 中的书签视图的列表。当您单击编辑时,您会得到以下信息:

在此屏幕中,您可以删除项目并更改其属性(通过右侧的 DisclosureIndicator)。我关注了 Xamarin 的 tutorial,但是当表格处于编辑模式时,我无法确切知道如何添加 DisclosureIndicator。我将在 ObjC 或 C# 中采用解决方案。

我在这里遗漏了一些简单的东西吗?

【问题讨论】:

【参考方案1】:

ios 中,这是通过以下方法完成的:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
    return YES;


- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
    return NO;


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


- (void) setEditing:(BOOL)editing animated:(BOOL)animated 
    [super setEditing: editing animated: animated];
    [self.tableView setEditing:editing animated:animated];


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


    if (editingStyle == UITableViewCellEditingStyleDelete) 
             //delete rows
    

披露指示器是一个电池附件。可以在cellForRowAtIndexPath方法中设置。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;


【讨论】:

我可能遗漏了一些东西,但是当我将 UITableView 置于编辑模式时,DisclosureIndicator 消失了。【参考方案2】:

使用

cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;

在GetCell方法中

【讨论】:

以上是关于如何实现一个可编辑的 UITableView,类似于 Safari 书签?的主要内容,如果未能解决你的问题,请参考以下文章

带有可编辑行的分组 uitableview - Apple 示例让我崩溃

如何在 UITableViewCell 中有一个可编辑的多 UITextView

如何使用子视图的延迟/动态加载实现自定义 UIView,类似于 UITableView

iOS中可导航的UITableView部分页脚?

如何移除 UITableView (MonoTouch) 中可重用的单元格

如何实现类似于Mail的UITableView行动画