iOS Cross溶解没有更深的中间

时间:2012-05-10 11:25:52

标签: objective-c ios xcode

我们试图在两个几乎精确的图像(几乎是动画帧)之间进行溶解,但到目前为止,我们无法消除在溶解过程中发生的变暗。客户非常坚定地认为没有这种更深的溶解,有什么想法?

 UIImageView *newImageView = [[UIImageView alloc] initWithFrame:imageViewSmileDesign.frame];
newImageView.image = imageViewSmileDesign.image;
[self.view addSubview:newImageView];

imageViewSmileDesign.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.jpg", result]];
imageViewSmileDesign.alpha = 0;

[UIView animateWithDuration:0.5 animations:^{
    imageViewSmileDesign.alpha = 1;
    newImageView.alpha = 0;
} completion:^(BOOL finished) {
    [newImageView removeFromSuperview];
} ];

感谢您的光临。

4 个答案:

答案 0 :(得分:0)

您可以使用内置于UIView的交叉溶解动画:

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion

将选项设置为UIViewAnimationOptionTransitionCrossDissolve

答案 1 :(得分:0)

只是不要将'newImageView'的alpha更改为0.这将导致新图像在旧图像上淡入淡出,并且您没有这种半透明状态,它们都是半透明的揭示背景色。

在动画播放前,您必须先调用imageViewSmileDesignbringSubviewToFront:带到前面。

答案 2 :(得分:0)

如果两个图像具有相同的帧,则只需删除newImageView.alpha = 0;。那就行了。

答案 3 :(得分:0)

您需要延迟newImageView.alpha淡入淡出的START。