BFRImageViewer
摘要
BFRImageViewer是一个用于在iOS应用程序中显示图片的一站式解决方案
它具有滑动手势来关闭,自动图片缩放,缩放和平移,支持多张图片,图片类型,URL回加载,自定义视图控制器过渡,内置视差效果,实时照片,并且很好地与3D touch协同工作!我们在Buffer for iOS中广泛使用它 :-).
我们在演示应用程序中提供了每个功能的代码示例,您可以自由地查看
安装
BFRImageViewer托管在CocoaPods上,这是推荐安装方式
pod 'BFRImageViewer'
快速入门
要快速使用 BFRImageViewer,只需初始化它即可——这就是全部内容!
//Image source can be an array containing a mix of PHAssets, NSURLs, URL strings, UIImage, PHLivePhoto or BFRBackLoadedImageSource
BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[image]];
let imageVC = BFRImageViewController(imageSource: [image])
从那时起,您将自动加载每张照片,并能够翻页浏览。如果您想了解更多信息,只需启动演示项目并查看一下即可。
自定义过渡效果
如果您想使用自定义视图控制器过渡,使选定的图像在图像查看器中缩放,只需在专门的图像查看器动画类中设置一些属性即可
// In viewDidLoad...
self.imageViewAnimator = [BFRImageTransitionAnimator new];
// Later on, when you want to show an image...
self.imageViewAnimator.animatedImageContainer = self.imageView;
self.imageViewAnimator.animatedImage = self.imageView.image;
self.imageViewAnimator.imageOriginFrame = self.imageView.frame;
self.imageViewAnimator.desiredContentMode = self.imageView.contentMode; //Optional
BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[self.imageView.image]];
imageVC.transitioningDelegate = self.imageViewAnimator;
[self presentViewController:imageVC animated:YES completion:nil];
这将产生这种效果(请原谅低质量的gif
URL后台加载
假设您有一个图像的缩略图,同时也有一个更高清晰度版本的URL。使用URL后台加载,您可以在后台加载数据的同时快速显示较低分辨率的图像。当加载完成后,我们将自动将其替换。这使您可以兼顾两者。您无需让用户等待URL加载,也不必总是接受降级图像。
- (void)openImageViewer {
BFRBackLoadedImageSource *backloadedImage = [[BFRBackLoadedImageSource alloc] initWithInitialImage:[UIImage imageNamed:@"lowResImage"] hiResURL:[NSURL URLWithString:@"cdn.theURl.png"]];
BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[backloadedImage]];
[self presentViewController:imageVC animated:YES completion:nil];
}
展望未来
我们经常维护此代码,并且可以放心的是,它已在生产中经历了成千上万的用户测试
我们总是很高兴谈论这些事情,因此请随时在Twitter上联系我们
- Andy - @ay8s
- Jordan - @jordanmorgan10
或者,嘿——为什么不参与BFRImageViewer的开发并获得报酬呢? 我们正在招聘!
许可
本项目使用MIT许可。