Latest | 1.0.1 |
---|---|
Homepage | https://github.com/KittenYang/KYElegantPhotoGallery |
License | MIT |
Platforms | ios 7.0 |
Dependencies | SDWebImage |
Frameworks | Foundation, UIKit |
Authors |
This repo has closed,just for testing the function of curve in animation
An elegant photo gallery. It will zoom from a thumb image and you can pan to dismiss it with cool animation.
The loading indicator component which I forked and customized is Here
Installation:
pod 'KYElegantPhotoGallery', '~> 1.0.1'
What it can do
1.支持双击放大、pinch缩放 Double-Tap & pinch to zoom.
2.支持长微博滑动 Long image supported!
3.支持手势滑动dismiss Dismiss with pan gesture supported!
4.支持单击dismiss Single-tap to dismiss supported!
TODO
1.滑动时显示自定义PageControl,并且显示总页数和当前页数 Show a page control,with current page num and totality.
2.增加长按保存 Add long-press ges to SAVE image.
Propertys & Init method:
/*
*
@parm: tappedImageView 当前点击的图片视图
@parm: imagesUrls 所有图片的URL链接
@parm: currentIndex 当前图片的序号,第一张图请传入1,第二张为2,以此类推...
*
*/
-(id)initWithTappedImageView:(UIImageView *)tappedImageView andImageUrls:(NSMutableArray *)imagesUrls andInitialIndex:(NSInteger )currentIndex;
/*
*
@property 所有需要显示的UIImageView
*
*/
@property(nonatomic,strong)NSMutableArray *imageViewArray;
-(void)dismissPhotoGalleryAnimated:(BOOL)animated;
-(void)finishAsynDownload:(void(^)(void))finishAsynDownloadBlock;
How to use
_photoGallery = [[KYPhotoGallery alloc]initWithTappedImageView:(UIImageView *)sender.view andImageUrls:self.bigImagesUrls andInitialIndex:sender.view.tag];
_photoGallery.imageViewArray = self.imageViewArray;
[_photoGallery finishAsynDownload:^{
[self presentViewController:_photoGallery animated:NO completion:nil];
}];
A brief intro of the pan-to-dismiss animation:
I use two quadratic functions(二次函数) to generate two factors:factorOfAngle & factorOfScale.
The factorOfAngle is the factor to make the view rotaton around the X axis,the factorOfScale of course is the factor to make view scale.And here are the graphs of factorOfAngle & factorOfScale blow.
factorOfAngle
factorOfScale
Then,put it tocurrentPhoto.layer.transform
:
CGFloat Y =MIN(SCROLLDISTANCE,MAX(0,ABS(transition.y)));
factorOfAngle = MAX(0,-4/(SCROLLDISTANCE*SCROLLDISTANCE)*Y*(Y-SCROLLDISTANCE));
factorOfScale = MAX(0,-1/(SCROLLDISTANCE*SCROLLDISTANCE)*Y*(Y-2*SCROLLDISTANCE));
CATransform3D t = CATransform3DIdentity;
t.m34 = 1.0/-1000;
t = CATransform3DRotate(t,factorOfAngle*(M_PI/5), transition.y>0?-1:1, 0, 0);
t = CATransform3DScale(t, 1-factorOfScale*0.2, 1-factorOfScale*0.2, 0);
currentPhoto.layer.transform = t;
License
This project is under MIT License. See LICENSE file for more information.
Latest podspec
{ "name": "KYElegantPhotoGallery", "version": "1.0.1", "summary": "u56feu7247u6d4fu89c8u63a7u4ef6uff0cu652fu6301u624bu52bfdismissu5e76u4f34u6709u4f18u96c5u7684u52a8u753bu3002", "description": " An elegant photo gallery. It will zoom from a thumb image and you can pan to dismiss it with cool animation.n", "homepage": "https://github.com/KittenYang/KYElegantPhotoGallery", "license": "MIT", "authors": { "KittenYang": "[email protected]" }, "platforms": { "ios": "7.0" }, "source": { "git": "https://github.com/KittenYang/KYElegantPhotoGallery.git", "tag": "1.0.1" }, "source_files": "KYElegantPhotoGallery-Demo/Classes/**/*.{h,m}", "frameworks": [ "Foundation", "UIKit" ], "dependencies": { "SDWebImage": [ "~> 3.7.2" ] } }
Tue, 01 Mar 2016 02:52:03 +0000