GVPhotoBrowser 0.10.1

GVPhotoBrowser 0.10.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2015年12月

Kevin Renskerseightytwo 维护。



  • 作者
  • Kevin Renskers

针对 iOS,使用数据源和代理模式的可重用、可缩放图片画廊。处理设备方向改变和内存警告。

功能

GVPhotoBrowser 非常灵活。与其他图片浏览器期望的 UIImage 对象数组或 NSURL 相比,GVPhotoBrowser 使用数据源模式,并要求您为每张图片提供一个 UIImageView。它与 UITableView 非常相似。

GVPhotoBrowser 包括 GVPhotoBrowser,这是一个 UIScrollView 子类,可以直接在您的视图控制器中使用;以及您可以通过它进行子类化的 GVPhotoBrowserViewController,该控制器将负责创建带有正确框架和自动调整大小蒙版的 GVPhotoBrowser,并将代理和数据源设置为自身。再次强调,这与 UITableViewUITableViewController 非常相似。

它不附带标题或 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