还有另一种方法(更整洁的 IMO):
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
UIImage * toImage = [UIImage imageNamed:@"myname.png"];
[UIView transitionWithView:self.view
duration:5.0f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.imageView.image = toImage;
} completion:nil];
}
编辑
对于多个图像/页面和来回切换,最好使用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
这样你在页面之间切换时不会有任何冲突。
要使图像相应地更改,您将使用一个switch
语句,这也意味着您必须将您的页面与数字相关联。由于 Apple 没有将此作为 UIScrollView 的属性,因此您必须自己使用以下方法获取数据:
int page = scrollView.contentOffset.x / scrollView.frame.size.width;
然后以一个不错的方法将所有这些添加到一起:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
int page = scrollView.contentOffset.x / scrollView.frame.size.width;
//Use the switch to set the variable (toImage) depending on the page
switch (page){
case 0: UIImage * toImage = [UIImage imageNamed:@"imageOne.png"];
break;
case 1: UIImage * toImage = [UIImage imageNamed:@"imageTwo.png"];
break;
case 2: UIImage * toImage = [UIImage imageNamed:@"imageThree.png"];
break;
case 3: UIImage * toImage = [UIImage imageNamed:@"imageFour.png"];
break;
}
//use the variable (toImage) and perform the transition from the current image
[UIView transitionWithView:self.view
duration:5.0f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.imageView.image = toImage;
} completion:nil];
}
我还没有测试过上面的代码,但是根据我对 C 和 Obj C 的了解,它应该可以工作。