我有一个tableView,它列出了包含jpg,pdf,zip,mp3,mp4,sql,..文件甚至文件夹的内容目录。在下一步中,我有一个detailView,它显示所选文件的一些属性,如fileName,fileSize,filePath,fileType。一切都很完美。
但实际上我的计划是在detailView中包含一个额外的选项。
即,
希望我的概念得到很好的解释。我有播放.mp3和.mp4文件的方法。现在我被困在推送imageView和文件夹的情况下。我没有想法继续这两种方法。
这是我的tableView
这是我的视频文件详情
这是我的.mp3文件的detailView
这是我的imageView留空的detailView。
请帮我继续处理一些示例代码。提前谢谢。
答案 0 :(得分:1)
根据您的截图和实现其他文件类型的进度判断,我假设您能够将文件路径的信息传递给详细信息视图。因此,对于图像文件,我将讨论如何将其显示为UIImageView
。
对于图像视图,您需要创建一个带有路径的UIImage
。
下面的代码示例:假设pathString
是带有图像路径的NSString*
,而imageView
现在是UIImageView
,应该显示图像。此代码将驻留在处理图像显示的-viewDidLoad
的{{1}}方法中。
detailViewController
对于文件夹视图,这有点不同。为了获得最佳结果,您需要递归加载正用于显示文件列表的UIImage* theImage = [[UIImage alloc] initWithContentOfFile:pathString];
imageView.image = theImage;
[theImage release];
(以便它将递归地继承所有文件/文件夹处理)。
我建议在实际推送视图之前将tableViewController
之类的实例变量添加到folderPath
。并且tableViewController
应该使用它作为基本路径。
下面的代码示例:假设tableViewController
是具有目标路径的pathString
,NSString*
现在是要打开的新detailViewController
的实例。此代码将驻留在将创建要在tableViewController
detailViewController
的方法中
tableView:didSelectRowAtIndexPath:
然后,您应该在detailViewController.folderPath = pathString;
[self.navigationController pushViewController:detailViewController animated:YES];
的{{1}}方法中实现,应该从-viewDidLoad
实例变量中读取哪些文件夹内容。
答案 1 :(得分:0)
此方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
在某个单元格上发生触摸时调用。
您可以使用 [yourTableView cellForRowAtIndexPath:cellIndex];
之后,您可以看到type属性,并打开相应的viewcontroller。
的 [self.navigationController pushViewController:detailViewController animated:YES];
强>
答案 2 :(得分:0)
创建detailView时,应该使用其他参数来重载init,这些参数指示要显示的媒体类型以及此资源的url /文件。
如果是图像,look at this post