测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最新发布 | 2015年12月 |
由 Kevin Renskers,eightytwo 维护。
针对 iOS,使用数据源和代理模式的可重用、可缩放图片画廊。处理设备方向改变和内存警告。
GVPhotoBrowser 非常灵活。与其他图片浏览器期望的 UIImage
对象数组或 NSURL
相比,GVPhotoBrowser 使用数据源模式,并要求您为每张图片提供一个 UIImageView
。它与 UITableView
非常相似。
GVPhotoBrowser 包括 GVPhotoBrowser
,这是一个 UIScrollView
子类,可以直接在您的视图控制器中使用;以及您可以通过它进行子类化的 GVPhotoBrowserViewController
,该控制器将负责创建带有正确框架和自动调整大小蒙版的 GVPhotoBrowser
,并将代理和数据源设置为自身。再次强调,这与 UITableView
和 UITableViewController
非常相似。
它不附带标题或 UIPageControl
处理。在视图控制器中添加页面控制很容易,可以使用代理设置当前页。如果您想显示标题或字幕,可以通过自定义数据源返回的 UIImageView
来实现。这些设计决策是 GVPhotoBrowser 非常灵活的原因。
使用 SDWebImage 加载远程图片的示例(一些像 SDWebImage-ProgressView 也可以很好地适应)
@interface ViewController : GVPhotoBrowserViewController
@property (strong, nonatomic) NSArray *imageUrls;
@end
@implementation ViewController
#pragma mark - GVPhotoBrowserDataSource
- (NSUInteger)numberOfPhotosInPhotoBrowser:(GVPhotoBrowser *)photoBrowser {
return [self.imageUrls count];
}
- (UIImageView *)photoBrowser:(GVPhotoBrowser *)photoBrowser customizeImageView:(UIImageView *)imageView forIndex:(NSUInteger)index {
NSURL *url = self.imageUrls[index];
[imageView setImageWithURL:url];
return imageView;
}
#pragma mark - GVPhotoBrowserDelegate
- (void)photoBrowser:(GVPhotoBrowser *)photoBrowser didSwitchToIndex:(NSUInteger)index {
self.title = [NSString stringWithFormat:@"%i of %i", index+1, [self.imageUrls count]];
}
如果您不想使用 GVPhotoBrowserViewController
子类,可以直接使用 GVPhotoBrowser
。
@interface ViewController : UIViewController <GVPhotoBrowserDataSource, GVPhotoBrowserDelegate>
@property (weak, nonatomic) IBOutlet GVPhotoBrowser *photoBrowser;
@end