检测editButtonItem tap

时间:2012-10-02 15:37:27

标签: objective-c ios uitableview uibarbuttonitem

我在导航栏中有一个带有editButtonItem的UITableView。我希望每当用户点击editButtonItem时都会播放一个tap音。现在,当点击编辑按钮时,我正在使用以下方法播放敲击声音

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
//Code to play the tap sound file
[super setEditing:editing animated:animated];}

但我遇到的问题是,当用户滑动一个tableviewcell&删除按钮显示,这不是我想要的。所以,我的问题是,是否有更好的方法来检测何时点击editButtonItem?

1 个答案:

答案 0 :(得分:1)

点击编辑按钮时,以下代码将播放声音 ONLY 。点按完成时,它将无法播放声音。此外,当您滑动单元格时,声音不应播放。

- (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;
    }
}