我怎么能用常量chaged setAlpha重新加载imageView?

时间:2013-05-31 17:20:50

标签: ios objective-c

我想在反向更改alpha参数时使用for进行类似于disolvense的效果,但是图像不会改变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];
    }

}

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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
}