これを行う別の方法もあります(より良い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 に関する私の知識から、動作するはずです。