为了完全控制自定义单元格中的编辑,您应该覆盖 UITableViewCell 子类中的 willTransitionToState 方法并检查状态掩码
- (void)willTransitionToState:(UITableViewCellStateMask)state
{
NSString *logStr = @"Invoked";
if ((state & UITableViewCellStateShowingEditControlMask)
!= 0) {
// you need to move the controls in left
logStr = [NSString stringWithFormat:@"%@
%@",logStr,@"UITableViewCellStateShowingEditControlMask"];
}
if ((state & UITableViewCellStateShowingDeleteConfirmationMask)
!= 0) {
// you need to hide the controls for the delete button
logStr = [NSString stringWithFormat:@"%@
%@",logStr,@"UITableViewCellStateShowingDeleteConfirmationMask"];
}
NSLog(@"%@",logStr);
[super willTransitionToState:state];
}
编辑:
你试过了吗:
setEditing:animated:切换接收器进入和退出编辑模式。
- (void)setEditing:(BOOL)editing animated:(BOOL)animated 参数编辑 YES 进入编辑模式,NO 离开。默认值为 NO 。动画 YES 为插入/删除控件和重新排序控件的出现或消失设置动画,NO 使过渡立即进行。讨论 当你在editing的值设置为YES的情况下调用这个方法,并且UITableViewCell对象被配置为有控件时,单元格会在每个单元格的左侧显示一个插入(绿色加号)或删除控件(红色减号)和一个在右侧重新排序控件。当调用 UITableView 的 setEditing:animated: 方法时,每个可见单元格都会调用此方法。在编辑设置为 NO 的情况下调用此方法会从单元格中删除控件。
可用性 适用于 iOS 2.0 及更高版本。另见 @property 编辑在 UITableViewCell.h 中声明