亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更改UIImageView的圖像時淡入/溶解

更改UIImageView的圖像時淡入/溶解

Cats萌萌 2019-12-10 13:08:22
與其創建兩個視圖UIImageViews,不如簡單地更改image一個視圖的視圖,這似乎是合乎邏輯的。如果這樣做,在兩個圖像之間是否有淡入淡出/交叉消失而不是即時切換?
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

使用新的基于塊的UIKit動畫方法可以更加簡單。


假設以下代碼位于視圖控制器中,并且您要交叉溶解的UIImageView是可通過屬性self.imageView尋址的self.view的子視圖。然后,您需要做的就是:


UIImage * toImage = [UIImage imageNamed:@"myname.png"];

[UIView transitionWithView:self.imageView

                  duration:5.0f

                   options:UIViewAnimationOptionTransitionCrossDissolve

                animations:^{

                  self.imageView.image = toImage;

                } completion:nil];

做完了


并在Swift中進行操作,就像這樣:


let toImage = UIImage(named:"myname.png")

UIView.transitionWithView(self.imageView,

                          duration:5,

                          options: UIViewAnimationOptions.TransitionCrossDissolve,

                          animations: { self.imageView.image = toImage },

                          completion: nil)

斯威夫特3.0


 let toImage = UIImage(named:"myname.png")

 UIView.transition(with: self.imageView,

                   duration: 0.3,

                   options: .transitionCrossDissolve,

                   animations: {

                       self.imageView.image = toImage

                   },

                   completion: nil)



查看完整回答
反對 回復 2019-12-11
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

是的,您說的是絕對正確的,那就是做到這一點的方法。我編寫了此方法,并始終使用它來淡化我的圖像。我CALayer為此處理。您需要為此導入Core Animation。


+ (void)fadeInLayer:(CALayer *)l

{

    CABasicAnimation *fadeInAnimate   = [CABasicAnimation animationWithKeyPath:@"opacity"];

    fadeInAnimate.duration            = 0.5;

    fadeInAnimate.repeatCount         = 1;

    fadeInAnimate.autoreverses        = NO;

    fadeInAnimate.fromValue           = [NSNumber numberWithFloat:0.0];

    fadeInAnimate.toValue             = [NSNumber numberWithFloat:1.0];

    fadeInAnimate.removedOnCompletion = YES;

    [l addAnimation:fadeInAnimate forKey:@"animateOpacity"];

    return;

}

您可以執行相反操作以淡出圖像。之后淡出。您只需將其從Superview中刪除(即UIImageView)。[imageView removeFromSuperview]。



查看完整回答
反對 回復 2019-12-11
  • 3 回答
  • 0 關注
  • 424 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號