与其创建两个 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