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

时间:2012-09-04 05:19:43

标签: c# ios uitableview xamarin.ios xamarin

我正在尝试实现一个与Mobile Safari中的书签视图非常相似的列表。单击“编辑”后,您将获得以下内容:

enter image description here

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

我在这里错过了一些简单的东西吗?

2 个答案:

答案 0 :(得分: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;

}

答案 1 :(得分:0)

使用

cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
GetCell方法中的