视图变换旋转使iOS中的图像渲染效果无效

时间:2017-08-17 09:54:53

标签: ios swift animation view

我创建了一个UIButton,如下所示(带阴影属性的圆形按钮没什么太奇特的):

    let button = UIButton(type: .system)
    button.backgroundColor = UIColor(hexString: "4267B2")
    button.tintColor = .white
    button.setImage(#imageLiteral(resourceName: "add").withRenderingMode(.alwaysTemplate), for: .normal)
    button.addTarget(self, action: #selector(handleClick), for: .touchUpInside)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.layer.cornerRadius = 32
    button.layer.shadowColor = UIColor.darkGray.cgColor
    button.layer.shadowRadius = 6
    button.layer.shadowOpacity = 0.6
    button.layer.shadowOffset = CGSize.zero

目的是在点击时看起来像一个添加按钮,它会旋转以形成一个十字按钮。

func handleClick() {
    button.isSelected = !newPostButton.isSelected
    let rotationDirection: CGFloat = button.isSelected ? 1: -1
    UIView.animate(withDuration: 0.5) {
        self.button.transform = self.button.transform.rotated(by: (rotationDirection * .pi/4))
    }
}

我遇到的问题是当旋转动画旋转时旋转完美,但为按钮.withRendering:提供的图像无效,如下所示:

Initially Finally

有修复吗? (代码没有库请)我在网上搜索但没有类似的问题。

1 个答案:

答案 0 :(得分:1)

您可以将按钮类型设置为.custom而不是.system。这应该可以解决你的问题。