2016-05-15 12 views
0

私は、2つのラベルが設定されたいくつかのセルを持つテーブルビューを持っています。
"label1-label2-name"という名前のmp3ファイルが存在する場合は、そのファイルを再生します。 ファイルが存在する場合にのみcell.buttonを表示

NSArray *final; 
NSString *element; 
final = [NSArray arrayWithObjects: @"a", @"b", @"c", @"d", nil]; 

今、私は同じことをやろうとしているが、ファイルが存在する場合だけで(ボタンが最初に隠されている)再生ボタンを表示するには、私の cellForRowAtIndexPathインチここで何が起こっている

- (CustomCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

for (element in final) { 

    buttonA = [NSString stringWithFormat:@"%@-%@-AAA-%@", current[indexPath.row][0],current[indexPath.row][1], element]; 
    fileA = [[NSBundle mainBundle] pathForResource:buttonA ofType:@"mp3"]; 
    BOOL fileExistsA = [[NSFileManager defaultManager] fileExistsAtPath:fileA]; 

    if (fileExistsA) { 

     cell.playA.hidden = false; 

    } 
} 
} 

は遊び、ファイル "LABEL1ラベル-2-AAA-dが" ない場合という名前のファイルは、 "LABEL1ラベル-2-AAAは-"、存在していてもということですボタンは表示されません。

特定のセルで再生を表示/非表示にするにはどうすればよいですか?

答えて

1

は、それはあなたがセルを再利用するかどうかが、あなたがしていると仮定されている場合は共有しているスニペットコードから明らかではない、あなたは(例えば、ファイルが存在しているかしていない場合)、両方のケースでcell.playA.hidden状態を更新することもできますそうしないと、既存のmp3ファイルを含むセルが画面に表示されたら、「再生」ボタンが表示されず、設定中に以前に非表示のボタンでセルをデキューします。

- (CustomCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    /// Get the cell 

    cell.playA.hidden = true; 
    for (element in final) { 
     buttonA = [NSString stringWithFormat:@"%@-%@-AAA-%@", current[indexPath.row][0],current[indexPath.row][1], element]; 
     fileA = [[NSBundle mainBundle] pathForResource:buttonA ofType:@"mp3"]; 
     BOOL fileExistsA = [[NSFileManager defaultManager] fileExistsAtPath:fileA]; 
     if (fileExistsA) { 
      cell.playA.hidden = false; 
      break; 
     } 
    } 
} 

それはあなたが望むものであると仮定すると、我々は(このセルのすべての可能なファイル名を確認し"LABEL1ラベル-2-AAA- "「LABEL1ラベル-2-AAA- b "、...)、少なくともがある場合はが表示されます。ボタンを表示します。それ以外の場合は非表示にします。

+0

こんな感じですか? (最後の要素){ buttonA = [NSString stringWithFormat:@ "%@ - %@ - AAA - %@"、現在の[indexPath.row] [cell.playA.hidden =!fileExistsA; 0]、現在の[indexPath.row] [1]、要素]; fileA = [[NSBundle mainBundle] pathForResource:buttonA ofType:@ "mp3"]; BOOL fileExistsA = [[NSFileManager defaultManager] fileExistsAtPath:fileA]; } ' – fabersky

+0

あなたの質問を間違って読んで申し訳ありません - 私はあなたが' cellForRowAtIndexPath'で 'final'を繰り返していることを理解していませんでした。私は私の答えを更新しました。 –

+0

そのトリックをした!ありがとう! – fabersky

関連する問題