我正在使用表视图来显示下载的歌曲。我在下载歌曲之前创建空文件夹而没有消失“.mp3”之后我正在用原始文件替换该文件,该文件已经消失.mp3。目的是获取文件音乐文件夹,并在表视图中赶它。表格视图在下载歌曲之前显示单元格中的活动指示器。下载歌曲后,我通过隐藏它来替换活动指示器。我的问题是在下载文件后,它无法更换按钮,但它隐藏了指示器。即使我滚动按钮也不会出现。每当我关闭该视图控制器并返回下载列表时,它就会正常显示。下载文件后,我尝试[tableview reload data];
,但没有变化。
任何帮助将不胜感激
我正在使用我正在使用表视图来显示下载的歌曲。表格视图在下载歌曲之前显示单元格中的活动指示器。下载歌曲后,我通过隐藏它来替换活动指示器。我的问题是在下载文件后,它无法更换按钮,但它隐藏了指示器。即使我滚动按钮也不会出现。每当我关闭该视图控制器并返回下载列表时,它就会正常显示。下载文件后,我尝试[tableview reload data];
,但没有变化。
任何帮助将不胜感激
if((![[songName substringFromIndex:MAX((int) [songName length]-4, 0)] isEqualToString:@".mp3"])
{
CoustoumCell *cellMain = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
cellMain.backgroundView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Table-view-background.png"]];
cellMain.AlbumLable.textColor = [UIColor colorWithRed:0.278 green:0.278 blue:0.278 alpha:1.0];
cellMain.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Table-view-selected-background.png"]];
cellMain.indiCatorForDon.tag=indexPath.row;
[cellMain.indiCatorForDon startAnimating];
[cellMain.playButton removeFromSuperview];
cellMain.imageView.image=Nil;
cellMain.downloadStatusLable.text=@"Downloading....";
cellMain.AlbumLable.text=[_songsList objectAtIndex:indexPath.row];
cellMain.numberLable.text=[NSString stringWithFormat:@"%d",indexPath.row+1];
}
else
{
CoustoumCell *cellMain = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
cellMain.backgroundView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Table-view-background.png"]];
cellMain.AlbumLable.textColor = [UIColor colorWithRed:0.278 green:0.278 blue:0.278 alpha:1.0];
cellMain.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Table-view-selected-background.png"]];
cellMain.AlbumLable.text=[_songsList objectAtIndex:indexPath.row];
[cellMain.indiCatorForDon stopAnimating];
cellMain.downloadStatusLable.textColor = [UIColor colorWithRed:0.278 green:0.278 blue:0.278 alpha:1.0];
cellMain.sizeLable.textColor = [UIColor colorWithRed:0.278 green:0.278 blue:0.278 alpha:1.0];
cellMain.sizeLable.text=[[self getSize] objectAtIndex:indexPath.row];
cellMain.downloadStatusLable.text=@"Downloaded";
cellMain.completedImage.image=[UIImage imageNamed:@"checked.png"];
cellMain.numberLable.text=[NSString stringWithFormat:@"%d",indexPath.row+1];
cellMain.playButton.tag=indexPath.row;
}
return cellMain;
从另一个视图下载歌曲发送通知到表格视图后
- (void) receiveTestNotification:(NSNotification *) notification
{
if ([[notification name] isEqualToString:@"TestNotification"])
{
NSLog (@"Successfully received the test notification!");
// Perform long running process
[self updateDownloadList];
[[AlbumsAnsSongs sharedManager] getallFiles];
[_tableView reloadData];
}
}
答案 0 :(得分:0)
由于问题在于UI更新,所以我想当你的数据完成下载时,你应该像这样调用reloadData方法:
- (void) receiveTestNotification:(NSNotification *) notification
{
if ([[notification name] isEqualToString:@"TestNotification"])
{
NSLog (@"Successfully received the test notification!");
// Perform long running process
[self updateDownloadList];
[[AlbumsAnsSongs sharedManager] getallFiles];
dispatch_async(dispatch_get_main_queue(), ^(void){
[_tableView reloadData];
});
}
}
似乎存在的另一个问题是您正在使用此声明删除按钮
[cellMain.playButton removeFromSuperview];
但在其他方面,你没有添加按钮,
我认为你应该隐藏按钮
而不是删除playButtoncellMain.playButton.hidden = YES
然后在其他部分
cellMain.playButton.hidden = NO
说明:
您正在从单元格中删除该按钮,因为单元格已被设置或您可以说重复使用,屏幕上显示没有按钮的单元格