ios - 更改 UIImageView 的图像时淡入淡出/溶解

与其创建两个 UIImageViews,不如简单地更改一个 View 的 image 似乎是合乎逻辑的。如果我这样做,是否有两个图像之间的淡入淡出/交叉溶解而不是即时切换?

最佳答案

使用新的基于 block 的 UIKit 动画 方法可以更简单。

假设以下代码在 View Controller 中,而你要交叉溶解的 UIImageView 是 self.view 的 subview ,可通过属性 self.imageView 寻址,那么你只需要:

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)

Swift 3、4 和 5

let toImage = UIImage(named:"myname.png")
UIView.transition(with: self.imageView,
                  duration: 0.3,
                  options: .transitionCrossDissolve,
                  animations: { self.imageView.image = toImage },
                  completion: nil)

https://stackoverflow.com/questions/7638831/

相关文章:

iphone - 如何将 NSDictionary 转换为 NSData,反之亦然?

ios - 错误 : _handleNonLaunchSpecificActions in iOS9

objective-c - 开发像 Facebook 新 iOS 应用程序中的侧滑菜单的最佳方法是什

ios - 何时使用 dequeueReusableCellWithIdentifier 与 deq

objective-c - cocoa objective-c类中变量前面的下划线如何工作?

objective-c - IBOutlet 和 IBAction

ios - Xcode 调试器不打印对象并显示 nil,当它们不是时

ios - 是否可以使用 UITableViewStylePlain 禁用 UITableView

objective-c - 从 NSString 中删除除数字之外的所有数字

ios - 如何在 UITableViewCell 之间添加间距