Re: [问题] 请教关于CollectionView上面的Button。

楼主: kiii210 (HelloWorld!)   2014-08-02 16:59:15
建立一个mp3名称的array,顺序跟你的textView要用的array一样
-> @[@"song1",@"song2"];
在cellForItemAtIndexPath里面给每一个button一个编号
-> button.tag = indexPath.row
每个button的selector都是play:
在你的play method里面
UIButton *button = (UButton *)sender;
int tag = button.tag
再从mp3 array拿档名出来
NSString *fileName = [mp3Array objectAtIndex:button.tag];
路径再用pathOfResource建立,最后再用AVAudioPlayer播放
理论上是没问题,你跑跑看XD
※ 引述《crazyni68 (Arni)》之铭言:
: 各位好,我第一次在本版发文,也是Xcode初学者,如果有表达不好的地方敬请见谅。
: 目前是在StoryBoard拉出UICollectionViewController,CollectionView的cell上有加上
: TextView与Butoon。
: 程式码上 numberOfItemSection中 回传我textView要使用的array=>
: return array1.count 与 cellForItemAtIndexPath中 定义cell识别码,
: 重复使用的cell => dequeueReusableCellWithReuseIdentifier
: Run程式后,也成功的复制出数个cell,当然每个cell上面也都有TextView与Button。
: TextView部分是没问题(每个cell成功依照array顺序显示内容),主要问题是需要点击不
: 同的Button会播放各自所属的mp3档[第一个cell上的Button播放第1个mp3档,
: 第2个cell上的Button播放第2个mp3档...]
: 原本也是想说和TextView一样用array存mp3档名称,然后使用AVAudioPlayer来播放,结
: 果发现路径上只能放NSString型态,且他好像只能播单首歌
: (pathForResource:@"歌名"ofType@"mp3")
: 是不是要将NSArray转NSString呢?
: 最后Run完都不成功(卡死,要不然就是点击Button无反应)
: 那为了能先Run成功,所以我改成执行后每个Cell的Butoon点击后都只能播放同一首mp3档
: (AVAudioPlayer这段程式码是放在CellForItemAtIndex里面,档名直接给一个mp3档)
: 有试过didSelectItemAtIndexPath但可能不太熟也不会使用,打完后失败也只能默默的把
: 它注解起来XD
: Button部分就是放
: -(IBAction)play:(id)sender
: {
: if (player)
: {
: if (![player isPlaying])
: {
: [player play];
: }
: }
: }
: 如有需要程式码比较好观看我再放该.m档的连结上来。
: 谢谢。
作者: crazyni68 (めがね)   2014-08-02 17:35:00
谢谢,刚有测试过,不过每个Button还是会放同一首mp3档
楼主: kiii210 (HelloWorld!)   2014-08-02 17:35:00
那应该去看看AVAudioPlayer吧

Links booklink

Contact Us: admin [ a t ] ucptt.com