PopUpMask
是一个循环UIView
。我用它来掩盖菜单。当用户点击按钮时,菜单“pop”也变成了一个更大的圆圈。当用户关闭它时,菜单缩小到较小的圆圈。当我缩放它时动画可以工作,但是当我想缩小它时它会在动画期间变换为方形。它如何缩小为一个圆圈?
以下是UIView
缩放版:
class PopUpMask: UIView {
override init(frame: CGRect) {
super.init(frame: CGRectMake(0, 0, 40, 40))
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func drawRect(rect: CGRect) {
self.layer.cornerRadius = 20
}
}
这些是名为的方法:
func unmaskToolbarBackground() {
UIView.animateWithDuration(0.3, delay: 0.3, options: .CurveEaseOut, animations: {
self.popUpMask.transform = CGAffineTransformMakeScale(12, 12)
self.toolbarView.maskView? = self.popUpMask
}, completion: nil)
}
func maskToolbarBackground() {
UIView.animateWithDuration(0.4, delay: 0, options: .CurveEaseOut, animations: {
self.popUpMask.transform = CGAffineTransformMakeScale(0.02, 0.02)
self.toolbarView.maskView? = self.popUpMask
}, completion: nil)
}
答案 0 :(得分:2)
如果我做对了,你应该修改一下:
override func drawRect(rect: CGRect) {
self.layer.cornerRadius = 20
}
是这样的:
override func drawRect(rect: CGRect) {
self.layer.cornerRadius = 20
self.layer.masksToBounds = true
}
P.S。稍微偏离记录:您不再需要使用self
来访问
"自己" Obj-C方式的方法除非你有名字冲突。