如何使UIView不出现在背景上但仍出现在UIImageView(子视图)上

时间:2014-08-24 03:08:20

标签: ios objective-c iphone swift

我有一个UIImageView。我也有一个观点。我希望视图出现在UIImageView的顶部,因为它在屏幕上动画。我不希望视图出现在后台。

我该怎么做?

我尝试通过添加另一个子视图来更改子视图的顺序,但这是不可能的。

我正在考虑使用图层而不是视图来制作动画,但UIImageView周围有透明部分。

代码:(注意:isAnimating是一个类属性,不用担心)

@IBAction func AnimateBtnTapped(sender: AnyObject) {
    if (isAnimating == false) {

        isAnimating = true

        UIView.animateWithDuration(0.6, delay: 0.0, options: .Repeat, animations: {
            self.glintImageConstraint.constant += 450
            self.view.layoutIfNeeded()
            }, completion: nil)


    } else {

        isAnimating = false

        self.glintImageView.layer.removeAllAnimations() //stop animation
        self.glintImageConstraint.constant = -200 //set glintImage to original position
        self.view.layoutIfNeeded()

    }
}

我的UIImageView是一个奖章。 glintImageView是它上面的对象动画。

编辑:我要求等效于Shimmer(https://github.com/facebook/Shimmer)但是对于UIImageView。

1 个答案:

答案 0 :(得分:0)

我认为你必须使用Core Animation。如果您使用CALayer作为图像视图并为其添加了遮罩层,则为要显示在图像顶部的视图使用子图层,它可能会起作用。