0

ナビゲーションバーに editButtonItem を持つ UITableView があります。ユーザーが editButtonItem をタップするたびにタップ音を鳴らしたかったのです。現在、編集ボタンがタップされたときにタップ音を鳴らすために次の方法を使用しています

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

しかし、私が抱えている問題は、ユーザーがテーブルビューセルをスワイプして削除ボタンが表示されたときにタップ音が再生されることです。これは私が望んでいるものではありません。だから、私の質問は、editButtonItem がいつタップされたかを検出するより良い方法はありますか?

4

1 に答える 1

1

以下のコードは、編集ボタンがタップされたときにのみサウンドを再生します。[完了]をタップすると、サウンドは再生されません。また、セルをスワイプしてもサウンドは再生されません。

- (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;
    }
}
于 2012-10-02T16:30:50.090 に答える