测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布最新发布 | 2014年12月 |
维护者 未指明.
依赖 | |
SDWebImage | < 3.0.0 |
MBProgressHUD | >= 0 |
注意:这是一个从 mwaterfall/MWPhotoBrowser 分支出来的。这个分支进行了修改,使得图片浏览器的界面可以根据需要进行自定义(导航栏颜色/图像、工具栏颜色/图像、背景颜色)。
New methods added are:
- (void)changeNavigationBarTintColor:(UIColor *)color;
- (void)changeNavigationBarBackgroundImage:(UIImage *)image;
- (void)changeBackgroundColor:(UIColor *)color;
- (void)changeToolbarTintColor:(UIColor *)color;
- (void)changeToolbarBackgroundImage:(UIImage *)image;
Usage:
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
browser.displayActionButton = YES;
[browser changeNavigationBarTintColor:[UIColor redColor]];
[browser changeToolbarTintColor:[UIColor redColor]];
[self.navigationController pushViewController:browser animated:YES];
MWPhotoBrowser 是一个类似于 iOS 上原生物理图片应用的图片浏览器实现。它可以通过提供 UIImage
对象、设备上图片的文件路径或在网络上的图片 URL 来显示一个或多个图片。图片浏览器无缝处理从网络下载和缓存图片。图片可以缩放和滚动,并可选择性地显示(可定制的)标题。适用于 iOS 3.2+。所有字符串都进行了本地化,因此它们可以用在支持多语言的应用中。
MWPhotoBrowser 被设计用于在导航控制器中显示。只需设置代理(必须符合 MWPhotoBrowserDelegate
)并实现所需的 2 个代理方法,向图片浏览器提供 MWPhoto
对象的数据。您可以通过提供 UIImage
对象、物理图片文件的路径或在线图片的 URL 来创建 MWPhoto
对象。
MWPhoto
对象处理缓存、文件管理、网络图片下载以及各种优化。不过,如果你想使用自己的数据模型来表示照片,你可以简单确保你的模型符合 MWPhoto
协议。然后,你可以自己处理缓存、下载等管理。更多相关信息可以在 MWPhotoProtocol.h
中找到。
下面是一个代码片段示例,展示了如何实现照片浏览器。项目内还有一个简单的演示应用程序。
// Create array of `MWPhoto` objects
self.photos = [NSMutableArray array];
[photos addObject:[MWPhoto photoWithFilePath:[[NSBundle mainBundle] pathForResource:@"photo2l" ofType:@"jpg"]]];
[photos addObject:[MWPhoto photoWithURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3629/3339128908_7aecabc34b.jpg"]]];
[photos addObject:[MWPhoto photoWithURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3590/3329114220_5fbc5bc92b.jpg"]]];
// Create & present browser
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
// Set options
browser.wantsFullScreenLayout = YES; // Decide if you want the photo browser full screen, i.e. whether the status bar is affected (defaults to YES)
browser.displayActionButton = YES; // Show action button to save, copy or email photos (defaults to NO)
[browser setInitialPageIndex:1]; // Example: allows second image to be presented first
// Present
[self.navigationController pushViewController:browser animated:YES];
然后响应所需代理方法
- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser {
return self.photos.count;
}
- (MWPhoto *)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index {
if (index < self.photos.count)
return [self.photos objectAtIndex:index];
return nil;
}
只需将照片浏览器包裹在一个新的导航控制器中,然后展示即可以模态方式呈现。演示应用程序允许你在两种展示类型之间切换。
如果你不希望全屏查看照片浏览器(例如,如果你在 iOS 5 中使用视图控制器包容),请将照片浏览器的 wantsFullScreenLayout
属性设置为 NO
。这意味着状态栏将不受照片浏览器的影响。
只需在特定照片上设置 caption
属性即可显示照片标题
MWPhoto *photo = [MWPhoto photoWithFilePath:[[NSBundle mainBundle] pathForResource:@"photo2l" ofType:@"jpg"]];
photo.caption = @"Campervan";
如果没有设置标题属性,则不会显示标题。
默认情况下,标题是一个简单的黑色半透明视图,其中有一个标签以白色显示照片的标题。如果你想实现自己的标题视图,请按照以下步骤操作
MWPhoto
的子类来存储你的照片,这样你就可以存储比简单的标题字符串更多的数据。MWCaptionView
并覆盖 -setupCaption
和 -sizeThatFits:
(以及任何其他适合的UIView方法)来布局你的视图并设置其大小。更多相关信息可以在 MWCaptionView.h
中找到-photoBrowser:captionViewForPhotoAtIndex:
MWPhotoBrowser 代理方法(如下所述)。自定义标题视图的代理方法示例
- (MWCaptionView *)photoBrowser:(MWPhotoBrowser *)photoBrowser captionViewForPhotoAtIndex:(NSUInteger)index {
MWPhoto *photo = [self.photos objectAtIndex:index];
MyMWCaptionViewSubclass *captionView = [[MyMWCaptionViewSubclass alloc] initWithPhoto:photo];
return [captionView autorelease];
}
git://github.com/mwaterfall/MWPhotoBrowser.git
克隆仓库并将其存储在您希望的位置来获取最新源代码。libMWPhotoBrowser.a
。MWPhotoBrowser.bundle
文件从 MWPhotoBrowser 项目拖动到该列表中。这确保您的项目将包括照片浏览器正确工作的所需图形。MessageUI.framework
和 ImageIO.framework
到“链接框架和库”。现在您应该可以将 MWPhotoBrowser.h
添加到您的项目,并开始使用它。
在Xcode 4中配置这些项可能有些棘手,所以如果您遇到任何问题,可能需要阅读一些相关信息。
另一种方法是简单地将文件添加到您的Xcode项目中,如果需要,将其复制到项目目录。请确保将位于 MWPhotoBrowser/Classes
、MWPhotoBrowser/Libraries
和 MWPhotoBrowser.bundle
的所有代码包含到您的项目中。
如果您的项目使用ARC,那么您将为MWPhotoBrowser中的每个文件禁用ARC。下面是如何操作的: http://stackoverflow.com/a/6658549/106244
没有待解决问题。
MWPhotoBrowser非常感激地利用了两个其他的出色开源项目
演示照片由Oliver Waters(http://twitter.com/oliverwaters)提供。
版权所有(c)2010 Michael Waterfall
特此授予任何人获得本软件及其相关文档文件(“软件”)副本的权利,免费处理该软件而不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,许可将软件提供给他人,以便他们可以进行此类操作,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
该软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适用性保证、特定用途保证和不侵权保证。在任何情况下,无论出于何种原因、侵权责任或其他责任,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论该损害或责任是由软件或其使用或其它原因造成的。