我如何制作链接到 uiscrollview contentoffest 的 uiimageView 缩放动画?
How i can do an uiimageView zoom animation linked to uiscrollview contentoffest?
我正在尝试实现根据滚动视图偏移相应地缩放图像视图的动画(我在 spotify 和其他一些应用程序中看到过类似的东西)。我该怎么办?我试过类似的东西:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (Scroll.contentOffset.y<-10 && Scroll.contentOffset.y>-20) {
[UIView animateWithDuration:0.1
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
ImageView.transform=CGAffineTransformMakeScale(1.1, 1.1);
}
completion:^(BOOL finished){
}];
}
if (Scroll.contentOffset.y<-20 && Scroll.contentOffset.y>-30) {
[UIView animateWithDuration:0.1
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
ImageView.transform=CGAffineTransformMakeScale(1.2, 1.2);
}
completion:^(BOOL finished){
}];
}
}
依此类推,直到值为 1.6 。自然这种方法效果不佳,它被调用了很多次并且在视觉上它抖动......我想达到这个结果:
用户向下滚动滚动视图,同时将放置在背景中的图像视图缩放到任意值(以及当用户 returns 向上滚动时的相反行为)。什么是正确的做法?
尝试根据 contentOffset 设置变换而不使用动画,例如
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat scale = 1;
if(Scroll.contentOffset.y<0){
scale -= Scroll.contentOffset.y/10; //calculate the scale factor as you like
}
ImageView.transform = CGAffineTransformMakeScale(scale,scale);
}
我正在尝试实现根据滚动视图偏移相应地缩放图像视图的动画(我在 spotify 和其他一些应用程序中看到过类似的东西)。我该怎么办?我试过类似的东西:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (Scroll.contentOffset.y<-10 && Scroll.contentOffset.y>-20) {
[UIView animateWithDuration:0.1
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
ImageView.transform=CGAffineTransformMakeScale(1.1, 1.1);
}
completion:^(BOOL finished){
}];
}
if (Scroll.contentOffset.y<-20 && Scroll.contentOffset.y>-30) {
[UIView animateWithDuration:0.1
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
ImageView.transform=CGAffineTransformMakeScale(1.2, 1.2);
}
completion:^(BOOL finished){
}];
}
}
依此类推,直到值为 1.6 。自然这种方法效果不佳,它被调用了很多次并且在视觉上它抖动......我想达到这个结果: 用户向下滚动滚动视图,同时将放置在背景中的图像视图缩放到任意值(以及当用户 returns 向上滚动时的相反行为)。什么是正确的做法?
尝试根据 contentOffset 设置变换而不使用动画,例如
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat scale = 1;
if(Scroll.contentOffset.y<0){
scale -= Scroll.contentOffset.y/10; //calculate the scale factor as you like
}
ImageView.transform = CGAffineTransformMakeScale(scale,scale);
}