我想在反向更改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];
}
}
答案 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
}