UIButton with shadow rotating 没有阴影旋转
UIButton with shadow rotating without shadow rotating
目前我有一个从 UIButton 扩展中提取属性的按钮。
func mapControllerButtons(image: String, selector: Selector) -> UIButton {
let button = UIButton()
button.setImage(UIImage(named: image)!.withRenderingMode(.alwaysOriginal), for: .normal)
button.layer.shadowColor = UIColor.black.cgColor
button.layer.shadowOffset = CGSize(width: 0.0, height: 3.0)
button.layer.shadowRadius = 5
button.layer.shadowOpacity = 0.5
button.layer.masksToBounds = false
button.addTarget(self, action: selector, for: .touchUpInside)
return button
}
}
这会在 button
下方创建一个阴影,但是我有另一个功能可以旋转按钮,向用户发出信号,表明正在从 API.[=18= 加载数据]
目前我正在做的是创建带有阴影的 button
并用没有阴影的 button
覆盖它。无影的button
就是会被点击旋转的
我有一种直觉,比创建两个 buttons
有一个吃内存只是为了它可以作为占位符(用于阴影效果)更好的方法。
我怎样才能创建一个可以使用 animateWith
func 旋转的按钮,同时阴影保持在原位?
这是我的动画代码块。
func animateRefreshButton() {
UIView.animate(withDuration: 1.0, delay: 0.0, options: .repeat, animations: {
self.refreshButton.transform = CGAffineTransform(rotationAngle: .pi)
})
}
您可以尝试旋转按钮的 imageView 而不是整个按钮:
func animateRefreshButton() {
UIView.animate(withDuration: 1.0, delay: 0.0, options: .repeat, animations: {
self.refreshButton.imageView?.transform = CGAffineTransform(rotationAngle: .pi)
})
}
目前我有一个从 UIButton 扩展中提取属性的按钮。
func mapControllerButtons(image: String, selector: Selector) -> UIButton {
let button = UIButton()
button.setImage(UIImage(named: image)!.withRenderingMode(.alwaysOriginal), for: .normal)
button.layer.shadowColor = UIColor.black.cgColor
button.layer.shadowOffset = CGSize(width: 0.0, height: 3.0)
button.layer.shadowRadius = 5
button.layer.shadowOpacity = 0.5
button.layer.masksToBounds = false
button.addTarget(self, action: selector, for: .touchUpInside)
return button
}
}
这会在 button
下方创建一个阴影,但是我有另一个功能可以旋转按钮,向用户发出信号,表明正在从 API.[=18= 加载数据]
目前我正在做的是创建带有阴影的 button
并用没有阴影的 button
覆盖它。无影的button
就是会被点击旋转的
我有一种直觉,比创建两个 buttons
有一个吃内存只是为了它可以作为占位符(用于阴影效果)更好的方法。
我怎样才能创建一个可以使用 animateWith
func 旋转的按钮,同时阴影保持在原位?
这是我的动画代码块。
func animateRefreshButton() {
UIView.animate(withDuration: 1.0, delay: 0.0, options: .repeat, animations: {
self.refreshButton.transform = CGAffineTransform(rotationAngle: .pi)
})
}
您可以尝试旋转按钮的 imageView 而不是整个按钮:
func animateRefreshButton() {
UIView.animate(withDuration: 1.0, delay: 0.0, options: .repeat, animations: {
self.refreshButton.imageView?.transform = CGAffineTransform(rotationAngle: .pi)
})
}