我有一个表格视图,其中一些单元格由2个标签填充 如果存在名为“label1-label2-name”的mp3文件,则播放该文件。
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-label-2-AAA-a”的文件,如果文件“label1-label-2-AAA-d”没有,则会隐藏播放按钮
如何在特定单元格中显示/隐藏游戏?
答案 0 :(得分: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-label-2-AAA- a ”,“label1 -label-2-AAA- b “,...),如果至少有一个,我们会显示该按钮,否则我们将其隐藏