使用TTPhotoViewController显示本地图片

由于开发需要,准备做一个图片浏览器,用来显示已经下载存处在本地的图片.在网上搜索时发现了一个很好的库Three20, 320的简介参见这里.320分为Network,Style,Core,UI四部分,其中UI可以实现的部分效果可以参见下面这些图片,


下载Three20需要安装git,具体配置方法参见这篇教程.

320自带了一些sample,其中TTCatalog中有TTPhotoViewController的用法示例,不过所有示例中的图片都是远程网络地址,

[[[MockPhoto alloc]

      initWithURL:@"http://farm4.static.flickr.com/3099/3164979221_6c0e583f7d.jpg?v=0"

      smallURL:@"http://farm4.static.flickr.com/3099/3164979221_6c0e583f7d_t.jpg"

      size:CGSizeMake(320, 480)] autorelease]

在 这里直接将地址替换为本地绝对路径是不行的,需要加前缀"documents://",比如本地图片保存在 "/程序Document/自定义目录/文件名",则需要将路径修改为"documents://自定义目录/文件名",这样就可以正常显示了.需要注意 的是指定的size必须是大图的真实大小,否则会出现图片重叠,显示不完整等奇怪的错误.


如果仅想使用TTPhotoViewController,而又不想把Three20的整套机制搬过来,只要在需要调用图片浏览的地方加入如下代码:

PhotoTest1Controller *viewController = [[[PhotoTest1Controller alloc] initWithNibName:NSStringFromClass([PhotoTest1Controller class]) bundle:nil] autorelease];

[self.navigationController pushViewController:viewController animated:YES];

这种用法需要注意的是每次调用后,Navigation Bar style都会被修改为Black Translucent,如果需要还原的话,可以在viewWillAppear中进行修改.

来自ZhaoZhe's Blog

原文地址:http://zhao-zhe.appspot.com/?p=60001

你可能感兴趣的:(controller)