关于uitableviewcell上增加button,点击后播放音频,想让音频播放完成后更改button状态的解决方:

首先说一下,这种方法真的很牛,以后最好能活学活用:

在做吃货的这个应用,因为我们的uitableviewcell上需要增加一个按钮,当点击这个按钮后开始播放音频(同时button状态改为selected),这些处理都没问题了,但现在的问题是当音频播放完成后会触发有个代理方法(即告诉音频已播放完成

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

),我应该怎么在这个方法里再来更改button的状态呢:  

跟群里兄弟聊天才知道,我可以再去定义一个全局的button,然后将cell中的这个button赋值给这个全局button,当音频播放完成后,在那个代理方法里写上 button.selected = NO;即可

关于uitableviewcell上增加button,点击后播放音频,想让音频播放完成后更改button状态的解决方:_第1张图片





我的代码实现是这样,这里只截取片段吧:

在.h文件中:

UIButton *btn;

@property(nonatomic,retain)UIButton *btn;


在.m文件中:

首先-(void)dealloc方法这样写:

if (btn) {                  //这个地方就是我下偏文章中提到的若不确定会创建,那么在delloc里release的时候最好判断下

        [btn release];

        btn = nil;

    }

    

    [super dealloc];


在 

-(UITableViewCell *)tableView:(UITableView *)tableViewDemo cellForRowAtIndexPath:(NSIndexPath *)indexPath 这个方法里将cell的button赋给这个全局的button:

self.btn = cell.audioinfoButton;



接着就可以在这个音频播放完成的代理类里更改button的状态了:

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

NSLog(@"播放完成");

    self.btn.selected = NO;


你可能感兴趣的:(关于uitableviewcell上增加button,点击后播放音频,想让音频播放完成后更改button状态的解决方:)