使用CATransition实现scrollView的多张页面滚动

- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@"1.jpg"];
_imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
_imageView.image = image;
[self.view addSubview:_imageView];
//利用for循环创建UIImage,并且添加到数组中
_imageList = [NSMutableArray arrayWithCapacity:8];
for (int i = 1; i <= 8; i++) {
NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i];
UIImage *image = [UIImage imageNamed:imageName];
[_imageList addObject:image];
}
CGFloat w = 80;
//添加pageController ---->此处的page没有做处理
UIPageControl *page = [[UIPageControl alloc] initWithFrame:CGRectMake((self.view.bounds.size.width - w) / 2, 416, w, 20)];
page.numberOfPages = 8;
[self.view addSubview:page];
}

#pragma mark 轻扫手势监听方法
- (IBAction)swipe:(UISwipeGestureRecognizer *)sender
{
//转场动画
CATransition *transition = [[CATransition alloc] init];
transition.type = @"push";
if (UISwipeGestureRecognizerDirectionLeft == sender.direction) {
transition.subtype = kCATransitionFromLeft;
_imageView.tag = (_imageView.tag + 1) % 8;
}else if (UISwipeGestureRecognizerDirectionRight == sender.direction){
transition.subtype = kCATransitionFromRight;
_imageView.tag = (_imageView.tag - 1 + 8) % 8;
}
[_imageView setImage:_imageList[_imageView.tag]];
[_imageView.layer addAnimation:transition forKey:nil];
}

原文地址:https://www.cnblogs.com/yinqiang/p/3491382.html