隐藏和显示动画滚动视图(Hide and show scrollview with animatio

2019-10-17 04:02发布

在我的应用我有一个滚动视图,当我按下一个按钮,它是隐藏的,当我再次按下它显示了。

我用scrollview.hidden = YES (或否)来做到这一点。

不过,我想用一个动画来做到这一点。 例如,它可以通过移动从屏幕的底部消失,并用相同的方式显示出来。 我怎样才能做到这一点?

编辑:

[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = bottomScroller.frame;
if(Frame.origin.y == 380){
    Frame.origin.y = 460;
}else{
    Frame.origin.y = 380;
}
bottomScroller.frame = Frame;
[UIView commitAnimations];

这解决了我的问题...

Answer 1:

您可以检查的UIView 动画 。 这是很容易的。 例如动画翻译可能会使用这样的:

[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = yourView.frame;
Frame.origin.y = 0;
yourView.frame = Frame;
[UIView commitAnimations];

然后将其移回:

[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = yourView.frame;
Frame.origin.y = 100;
yourView.frame = Frame;
[UIView commitAnimations];

在帧中,α和一些其他参数的变化将自动动画。



Answer 2:

您可以使用像这样的动画: -

[UIView animateWithDuration:2.0 animations:^{
     [scrollview setframe:CGRectMake(xpos, ypos, width, height)];
}];

如果你想滚动视图或关闭屏幕中将其y位置滑动 - 视图的底部是要隐藏它,正常的y位置,如果你想证明这一点。

2.0是一个动画的长度,这是可以改变的,无论你需要它!



Answer 3:

您可以通过使用简单的视图动画做到这一点。 这里有一个如何做到这一点的例子:

// myScrollView is your scroll view

-(void)toggleShow{
    CGFloat targetAlpha = myScrollView.alpha == 1 ? 0 : 1;
    CGFloat yPosition = targetAlpha == 1 ? 0 : self.view.frame.size.height;

    [UIView animateWithDuration:1.0 animations:^{
        myScrollView.frame = CGRectMake(myScrollView.frame.origin.x, yPosition, myScrollView.frame.size.width, myScrollView.frame.size.height);
        myScrollView.alpha = targetAlpha;
    }];
}

targetAlpha永远是当前的状态(1或0)的对面,并且如果它是0,那么y位置将被设置到父视图的底部。 使用新的学校UIView动画API与块,我们可以执行这些变化在1秒滚动视图(在我的例子)。



Answer 4:

滚动型动画屏幕的一面 appers。 我觉得这件事动画是你想要的。

// ScrollView appearing animation
- (void)ScrollViewUpAnimation
{
    // put the scroll view out of screen
    CGRect frame = ScrollView.frame;
    [self.view addSubview:ScrollView];
    ScrollView.frame = CGRectMake(0, 460, frame.size.width, frame.size.height);

    // setting for animation
    CGPoint fromPt = ScrollView.layer.position;
    CGPoint toPt = CGPointMake(fromPt.x, fromPt.y - frame.size.height - 44);
    CABasicAnimation* anime =
    [CABasicAnimation animationWithKeyPath:@"position"];
    anime.duration = 0.2;
    anime.fromValue = [NSValue valueWithCGPoint:fromPt];
    anime.toValue = [NSValue valueWithCGPoint:toPt];

    // change the position of Scroll View when animation start
    [ScrollView.layer addAnimation:anime forKey:@"animatePosition"];
    ScrollView.layer.position = toPt;
}


文章来源: Hide and show scrollview with animation