我正在使用表视图,我使用不同的单元格大小,但是当我删除单元格时,它显示在恒定位置,而不是在单元格的中间。我应该怎么做自定义删除按钮位置?
答案 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];