2017-05-27 69 views
0

我想知道是否有可能在没有UIImageView图层动画的情况下为UIImageView内部的视图设置动画。我想让边框不生动,并且要将图像剪裁到边框上,但要根据需要将图像淡入淡出。swift 3褪色图像,而不是UIImage层

我动画这样的:

func animateStart() { 
    UIView.animate(withDuration: 3, animations: { 
     self.firstImg.image = UIImage(named:"peter.JPG") 
     self.firstImg.alpha = 1 
    }, completion: { finished in 
     if finished { 
      self.animateSecond() 
     } 
    }) 
} 

设置边界,如:

class RoundedImage: UIImageView { 

    override func awakeFromNib() { 
    self.layer.borderWidth = 5 
    self.layer.borderColor = UIColor.darkGray.cgColor 
    self.layer.cornerRadius = 15 
    self.clipsToBounds = true 
    } 
+0

我猜你不能这样做。将您的imageView作为子视图添加到具有配置边框的相同大小的UIView。并在里面设置动画效果。 –

回答

2

不要在图像视图的边界。

将边框放在UIView上并将图像视图添加到该图像视图。

现在,当您为图像视图设置动画并淡入淡出时。它在里面的观点将继续存在。

+1

谢谢,我非常喜欢这个解决方案。我无法相信我在网上上过了多少课程,而且没有一个课程已经过了UIView。现在我已经使用了一个,看起来像是一个基本的设计方面 – froggomad

+1

它们非常适合创建像这样的自定义行为。 UIImageView只是UIView的一个自定义行为。而不是子类,我得到了UIImageView,你可以代替UIView子类来创建一个图像视图的容器。现在你有一个单一的视图,有一个边框,并可以显示淡化图像:-) – Fogmeister

0

最好使用一个UIView(作为你的imageView的一个容器),并把你的imageView放在它的内部。把你想要的任何动画放到那个imageView中(淡入淡出)。

,你会得到ImageView的帧(其实它不是,它背后是UIView的其中担任您的ImageView的容器)

淡出前:

enter image description here

淡出

enter image description here

景观层次:

enter image description here

+0

非常感谢详细的答案 – froggomad