如何在移动UIView时将其淡化?

时间:2014-03-03 00:29:54

标签: objective-c

我有一个UIView,我想给它一个效果,使它以alpha为0开始,然后向上移动50像素动画时它也会变为alpha为1.如何在Objective-中完成C 1

3 个答案:

答案 0 :(得分:0)

[UIView animateWithDuration:1.0 animations:^{
    //here change position and alpha 
    CGRect newFrame = view.frame;
    newFrame.origin.y += 50;
    view.frame = newFrame;
    view.alpha = 1.0;
} completion:^(BOOL finished) {
    //called when animation did finish. do what you want
}];

答案 1 :(得分:0)

https://developer.apple.com/library/ios/documentation/windowsviews/conceptual/viewpg_iphoneos/animatingviews/animatingviews.html

关于动画的一切。 没关系。

//something similar to what you want:

- (IBAction)showHideView:(id)sender
{
    // Fade out the view right away
    [UIView animateWithDuration:1.0
        delay: 0.0
        options: UIViewAnimationOptionCurveEaseIn
        animations:^{
             thirdView.alpha = 0.0;
        }
        completion:^(BOOL finished){
            // Wait one second and then fade in the view
            [UIView animateWithDuration:1.0
                 delay: 1.0
                 options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                    thirdView.alpha = 1.0;
                 }
                 completion:nil];
        }];
}

答案 2 :(得分:0)

这样的事情可以解决问题:

UIView *box = [[UIView alloc] initWithFrame:CGRectMake(self.view.center.x, self.view.center.y, 100, 50)];
box.backgroundColor = [UIColor blackColor];
box.alpha = 0.0f;
[self.view addSubview:box];


[UIView animateWithDuration:2.0f
                 animations:^{
                     box.alpha = 1.0f;
                     CGRect frame = CGRectMake(self.view.center.x, self.view.center.y - 100, 100, 50);
                     [box setFrame:frame];
                 }];