投影以保留在旋转 UIview Swift 3 的底部



如何在旋转/动画 UI 视图的底部保留阴影

我的投影代码如下

    extension UIView {
    func dropShadow(cornerRadius : CGFloat, heightOffset : Int) {
        self.layer.masksToBounds = false
        self.layer.shadowColor = UIColor.black.cgColor
        self.layer.shadowOpacity = 1
        self.layer.shadowOffset = CGSize(width: 0, height: heightOffset)
        self.layer.shadowRadius = 5
//remove bezier to enable corner radius
       // self.layer.shadowPath = UIBezierPath(rect: self.bounds).cgPath
        self.layer.cornerRadius = cornerRadius
        self.layer.shouldRasterize = true
    }
}

然后在我的视图控制器中,我在 uiview 动画中调用该方法

隐藏

UIView.animate(withDuration: 0.5, animations: {
            for views in self.menuView.subviews {
                views.alpha = 0
            }
            self.view.layoutIfNeeded()
            self.moreButton.transform = tr
              self.moreButton.dropShadow(cornerRadius: self.moreButton.layer.cornerRadius, heightOffset: 5)

        }

以显示

    UIView.animate(withDuration: 0.5, animations: {
            self.moreButton.dropShadow(cornerRadius: self.moreButton.layer.cornerRadius, heightOffset: -5)
           // menuV.center = self.menuView.center
            menuV.center.y = -30
            menuV.alpha = 1
            self.view.layoutIfNeeded()

            self.moreButton.transform = tr

        }, completion: { (complete) in

        })

结果是阴影跳到顶部或底部,然后旋转。

我基本上需要它在动画过程中始终保持在图层的底部。

有人可以帮忙并描述我可能做错了什么吗

问候

托马斯

找到答案: -

与其将按钮

作为一个整体旋转,不如只旋转按钮内的图像是有意义的

所以代码应该是这样的

            self.myButton.imageView?.transform = tr

最新更新