2016-05-15 27 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-A” 的存在,如果文件 “LABEL1标签-2-AAA-d” 不,播放按钮将被隐藏。

如何显示/隐藏特定单元格的播放?

回答

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

是这样的? button.A = [NSString stringWithFormat:@“%@ - %@ - AAA - %@”,current [indexPath.row] [ 0],当前[indexPath.row] [1],元素]; fileA = [[NSBundle mainBundle] pathForResource:buttonA ofType:@“mp3”]; BOOL fileExistsA = [[NSFileManager defaultManager] fileExistsAtPath:fileA]; }' – fabersky

+0

对不起,我误解了你的问题 - 我没有意识到你循环'cellForRowAtIndexPath'中的'final'。我已经更新了我的答案。 –

+0

那个伎俩!谢谢! – fabersky

相关问题