Ios 动画后如何读取关键路径值?
我正在为我的“晶圆厂”按钮的显示和隐藏设置动画,但是如果晶圆厂已经显示,我想阻止它显示。如何读取当前图层比例Ios 动画后如何读取关键路径值?,ios,swift,ios-animations,Ios,Swift,Ios Animations,我正在为我的“晶圆厂”按钮的显示和隐藏设置动画,但是如果晶圆厂已经显示,我想阻止它显示。如何读取当前图层比例 func hideFab(){ let materialCurve = MDCAnimationTimingFunction.deceleration let timingFunction = CAMediaTimingFunction.mdc_function(withType: materialCurve) let animation = CABasicAni
func hideFab(){
let materialCurve = MDCAnimationTimingFunction.deceleration
let timingFunction = CAMediaTimingFunction.mdc_function(withType: materialCurve)
let animation = CABasicAnimation(keyPath:"transform.scale.xy")
animation.timingFunction = timingFunction
animation.fromValue = 1
animation.toValue = 0
animation.duration = 0.5
animation.isRemovedOnCompletion = false
animation.fillMode = .forwards
fab.layer.playAnimation({ (layer) -> CAAnimation in
animation
}, key: animation.keyPath!)
}
func showFab(){
let materialCurve = MDCAnimationTimingFunction.deceleration
let timingFunction = CAMediaTimingFunction.mdc_function(withType: materialCurve)
let animation = CABasicAnimation(keyPath:"transform.scale.xy")
animation.timingFunction = timingFunction
animation.fromValue = 0
animation.toValue = 1
animation.duration = 0.5
animation.isRemovedOnCompletion = false
animation.fillMode = .forwards
fab.layer.playAnimation({ (layer) -> CAAnimation in
animation
}, key: animation.keyPath!)
}
使用此
让currentScale=fab.layer.presentation()?.value(forKeyPath:“transform.scale.xy”)??0.0
您应该能够获得演示文稿比例值
但我会尝试检查我是否展示了带有标签的晶圆厂:
let hiddenFABTag = 99
let shownFABTag = 100
func hideFAB(){
if fab.tag == shownFABTag {
...
...
fab.tag = hiddenFABTag
}
}
func showFAB(){
if fab.tag == hiddenFABTag {
...
...
fab.tag = shownFABTag
}
}
第一次调用它时,无论是在viewDidLoad()
中还是在其他地方,如果您知道第一次是显示还是隐藏它,您可能希望为它指定一个默认标记值,方法是:
override func viewDidLoad() {
super.viewDidLoad()
fab.tag = hiddenFABTag
}