我们试图在两个几乎精确的图像(几乎是动画帧)之间进行溶解,但到目前为止,我们无法消除在溶解过程中发生的变暗。客户非常坚定地认为没有这种更深的溶解,有什么想法?
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];
} ];
感谢您的光临。
答案 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.这将导致新图像在旧图像上淡入淡出,并且您没有这种半透明状态,它们都是半透明的揭示背景色。
在动画播放前,您必须先调用imageViewSmileDesign
将bringSubviewToFront:
带到前面。
答案 2 :(得分:0)
如果两个图像具有相同的帧,则只需删除newImageView.alpha = 0;
。那就行了。
答案 3 :(得分:0)
您需要延迟newImageView.alpha淡入淡出的START。