Objective c 检测editButtonItem抽头
我在导航栏中有一个带有editButtonItem的UITableView。我想在用户点击editButtonItem时播放一次点击声音。现在,我使用以下方法在点击编辑按钮时播放点击声音Objective c 检测editButtonItem抽头,objective-c,ios,uitableview,uibarbuttonitem,Objective C,Ios,Uitableview,Uibarbuttonitem,我在导航栏中有一个带有editButtonItem的UITableView。我想在用户点击editButtonItem时播放一次点击声音。现在,我使用以下方法在点击编辑按钮时播放点击声音 - (void)setEditing:(BOOL)editing animated:(BOOL)animated { //Code to play the tap sound file [super setEditing:editing animated:animated];} 但我的问题是,当用户滑动tab
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
//Code to play the tap sound file
[super setEditing:editing animated:animated];}
但我的问题是,当用户滑动tableviewcell时,也会播放敲击声&此时会显示delete按钮,这不是我想要的。因此,我的问题是,有没有更好的方法来检测何时点击editButtonItem?当点击EditButton时,下面的代码只会播放声音。当您点击“完成”时,它将不会播放声音。此外,当您滑动手机时,声音不应播放
- (void)willTransitionToState:(UITableViewCellStateMask)state
{
if (state == UITableViewCellStateShowingDeleteConfirmationMask) {
swipedToDelete = YES; // BOOL ivar
}
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
if (editing && !swipedToDelete)
{
// Play sound
}
if (swipedToDelete) {
swipedToDelete = NO;
}
}
当我滑动tableviewcell时,仍然会播放声音&此时会显示delete按钮。这正是我试图避免的。你的回答很有道理,我也明白为什么它会起作用,但是,出于某种原因,在刷手机时声音仍然会播放。有什么想法吗?@user1542795在集合编辑中添加一些nslog以输出
swipedToDelete
值。另外,在WillTransitionOnState
中添加一些NSLog,以查看首先调用的是哪一个。当我意识到WillTransitionOnState是UITableViewCell而不是UITableViewController上的一个方法时,我正准备开始用头撞墙,试图弄清楚为什么WillTransitionOnState根本没有被调用。谢谢