这个入门教程设计了一个自定义的 Button
,基于 UIButton
类,设置了按钮背景色、标题字体和大小,并设置了阴影,同时提供了抖动的动画效果。
初始化
init(frame: CGRect)
是用于代码创建按钮的初始化,而 init?(coder aDecoder: NSCoder)
是用于 StoryBoard 拖拽出来的按钮的初始化。
按钮抖动效果
只需设置动画起始和结束位置、动画次数和耗时,通过 CABasicAnimation
就可以实现抖动效果,示例代码实现的是左右抖动效果。
自定义按钮类代码实现
源码取自源教程的提供的 DropBox 下载。
class CustomButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
setupButton()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupButton()
}
func setupButton() {
setShadow()
setTitleColor(.white, for: .normal)
backgroundColor = Colors.coolBlue
titleLabel?.font = UIFont(name: "AvenirNext-DemiBold", size: 18)
layer.cornerRadius = 25
layer.borderWidth = 3.0
layer.borderColor = UIColor.darkGray.cgColor
}
private func setShadow() {
layer.shadowColor = UIColor.black.cgColor
layer.shadowOffset = CGSize(width: 0.0, height: 6.0)
layer.shadowRadius = 8
layer.shadowOpacity = 0.5
clipsToBounds = true
layer.masksToBounds = false
}
func shake() {
let shake = CABasicAnimation(keyPath: "position")
shake.duration = 0.1
shake.repeatCount = 2
shake.autoreverses = true
let fromPoint = CGPoint(x: center.x - 8, y: center.y)
let fromValue = NSValue(cgPoint: fromPoint)
let toPoint = CGPoint(x: center.x + 8, y: center.y)
let toValue = NSValue(cgPoint: toPoint)
shake.fromValue = fromValue
shake.toValue = toValue
layer.add(shake, forKey: "position")
}
}
分类:iOS
需要交换下友情链接,老板。
赞赞
喜欢《小王子》,已添加,记得添上我的:)
赞赞
已添加,感谢。
赞赞
请教兄台一个问题,Wordpress上传图片后,会自动进行压缩,就算将质量调至100,还是会生成另一张图片,相当于上传一张图片服务器会存放两张。有没有什么办法可以直接跳过压缩图片这个动作。请指教。
赞赞
抱歉,我也不懂啊
赞赞
好的,谢谢。
赞赞