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