0

我想在用 for 反向更改 alpha 参数时产生类似于溶解的效果,但图像不会改变 beetwen 0 和 1 只有在 alpha 变为 1 时才会改变。PD。在我的代码中,图像是 setAlpha = 0 这是该方法的代码:

-(void)splash:(UIImageView *)img{    

    for (double i=0.0; i<=1.0; i=i+0.1) {
        for (int x=0;x<=10000;x++){
            for (int h=0;h<=10000;h++){

            }
        }
        NSLog(@"%g",i);
        [img setAlpha:i];
        [img reloadInputViews];
    }

}
4

2 回答 2

2

为什么不使用基本的视图动画来淡入图像视图:

- (void)splash:(UIImageView *)img {
    img.alpha = 0.0;
    [UIView animateWithDuration:1.0 animations:^{
        img.alpha = 1.0;
    }];
}

将持续时间设置为您想要的任何所需结果(以秒为单位)。

于 2013-05-31T17:32:08.173 回答
1

如果您不想使用 UIView 动画(如上所述,您可能应该使用这种方式),那么您可以尝试这样的递归循环:

- (void)performSplashAlpha:(UIImageView *)img
{
    img.alpha += 0.1;

    if(img.alpha < 1)
        [self performSelector:@selector(performSplashAlpha:) withObject:img afterDelay:0.1]; //Or whatever timing you want in between alphas
}
于 2013-05-31T17:36:18.887 回答