在UITABLEVIEW中更改删除按钮的位置

时间:2011-03-10 09:26:30

标签: iphone uitableview

我正在使用表视图,我使用不同的单元格大小,但是当我删除单元格时,它显示在恒定位置,而不是在单元格的中间。我应该怎么做自定义删除按钮位置?

2 个答案:

答案 0 :(得分:1)

这真是太烂了,但我发现了这段代码:

- (void)willTransitionToState:(UITableViewCellStateMask)state {

    [super willTransitionToState:state];

    if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) {

        for (UIView *subview in self.subviews) {

            if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {             

                subview.hidden = YES;
                subview.alpha = 0.0;
            }
        }
    }
}

- (void)didTransitionToState:(UITableViewCellStateMask)state {

    [super willTransitionToState:state];

    if (state == UITableViewCellStateShowingDeleteConfirmationMask || state == UITableViewCellStateDefaultMask) {
        for (UIView *subview in self.subviews) {

            if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {

                UIView *deleteButtonView = (UIView *)[subview.subviews objectAtIndex:0];
                CGRect f = deleteButtonView.frame;
                f.origin.x -= 20;
                deleteButtonView.frame = f;

                subview.hidden = NO;

                [UIView beginAnimations:@"anim" context:nil];
                subview.alpha = 1.0;
                [UIView commitAnimations];
            }
        }
    }
}

基本上,您要删除子视图,直到找到删除按钮。我还建议不显示默认删除按钮并使用您自己的自定义删除按钮。

答案 1 :(得分:0)

viewWillAppear中重新加载表格。它将在删除记录后重新加载表。

[super viewWillAppear:animated];
//  [self.tableView reloadData ];
[tblSimpleTable reloadData];