#define IMAGE_COUNT 5
@interface PictureViewController ()
{
UIImageView *_imageView;
int _currentIndex;
}
@property (nonatomic,strong)NSArray * imageArr;
@property (nonatomic,strong)NSArray * animationImage;
@end
@implementation PictureViewController
- (void)viewDidLoad {
[superviewDidLoad];
self.view.backgroundColor=[UIColorwhiteColor];
// Do any additional setup after loading the view.
//定义图片控件
_imageView=[[UIImageViewalloc]init];
_imageView.frame=CGRectMake(10,0, self.view.frame.size.width-20,self.view.frame.size.height);
_imageView.contentMode=UIViewContentModeScaleAspectFit;
_imageView.image=[UIImageimageNamed:self.imageArr[0]];//默认图片
[self.viewaddSubview:_imageView];
//添加手势
UISwipeGestureRecognizer *leftSwipeGesture=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(leftSwipe:)];
leftSwipeGesture.direction=UISwipeGestureRecognizerDirectionLeft;
[self.viewaddGestureRecognizer:leftSwipeGesture];
UISwipeGestureRecognizer *rightSwipeGesture=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(rightSwipe:)];
rightSwipeGesture.direction=UISwipeGestureRecognizerDirectionRight;
[self.viewaddGestureRecognizer:rightSwipeGesture];
}
// 向左滑动浏览下一张图片
-(void)leftSwipe:(UISwipeGestureRecognizer *)gesture{
[selftransitionAnimation:YES];
}
// 向右滑动浏览上一张图片
-(void)rightSwipe:(UISwipeGestureRecognizer *)gesture{
[selftransitionAnimation:NO];
}
//转场动画
-(void)transitionAnimation:(BOOL)isNext{
//1.创建转场动画对象
CATransition *transition=[[CATransitionalloc]init];
//2.设置动画类型,注意对于苹果官方没公开的动画类型只能使用字符串,并没有对应的常量定义
transition.type=self.animationImage[arc4random()%12];
//设置子类型
if (isNext) {
transition.subtype=kCATransitionFromRight;
}else{
transition.subtype=kCATransitionFromLeft;
}
//设置动画时常
transition.duration=0.5f;
//3.设置转场后的新视图添加转场动画
_imageView.image=[selfgetImage:isNext];
//key任意值,用来存储动画对象
[_imageView.layeraddAnimation:transition forKey:@"myAnimation"];
}
// 取得当前图片
-(UIImage *)getImage:(BOOL)isNext{
if (isNext) {
_currentIndex=(_currentIndex+1)%IMAGE_COUNT;
}else{
_currentIndex=(_currentIndex-1+IMAGE_COUNT)%IMAGE_COUNT;
}
NSString *imageName=[NSStringstringWithFormat:@"%@",self.imageArr[_currentIndex]];
return [UIImageimageNamed:imageName];
}
//懒加载
-(NSArray *)imageArr
{
if (!_imageArr) {
//图片
_imageArr=@[@"0.jpg",@"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg"];
}
return_imageArr;
}
-(NSArray *)animationImage
{
if (!_animationImage) {
//动画效果
//@"交叉淡化过度",@"新视图把旧视图推出去",@"新视图移到旧视图上面",@"将旧视图移开,显示下面的新视图",@"立方体翻滚效果",@"上下左右翻转效果",@"收缩效果,如一块布被抽走",@"水滴效果",@"向上翻页效果",@"向下翻页效果",@"相机镜头打开效果",@"相机镜头关闭效果"
_animationImage=@[@"fade",@"push",@"moveIn",@"reveal",@"cube",@"oglFlip",@"suckEffect",@"rippleEffect",@"pageCurl",@"pageUnCurl",@"cameraIrisHollowOpen",@"cameraIrisHollowClose"];
}
return_animationImage;
}
@end