2012-10-02 60 views
0

我在导航栏中有一个带有editButtonItem的UITableView。每当用户点击editButtonItem时,我都想要点击播放声音。现在,我使用下面的方法时,编辑按钮被窃听detect editButtonItem tap

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

玩的踢踏声,但我的问题是,当用户刷tableviewcell &删除按钮显示了踢踏声也起着,这不是我想要的。所以,我的问题是,是否有更好的方法来检测editButtonItem被点击的时间?

回答

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; 
    } 
} 
+0

这将仍然播放声音时,我滑动tableviewcell&删除按钮显示。这是我想要避免的。 –

+0

@ user1542795我已经编辑我的回答占swipeing – Bot

+0

你的回答让有很大的意义,我可以看到为什么它应该工作,但是,出于某种原因,声音刷卡的小区时,仍然起着。有任何想法吗? –