0
次の結果は、ビューが2秒間に1/2のサイズからスケールアップされます。サブレイヤトランスフォームのアニメーションの時間が無視されます
myView.layer.transform = CATransform3DMakeAffineTransform(
CGAffineTransform.identity.scaledBy(x: 0.5, y: 0.5))
UIView.animate(withDuration: 2, animations: {
myView.layer.transform = CATransform3DIdentity
})
ただし、次のように表示すると、ビューが直ちに拡大され、期間は無視されます。
myView.layer.sublayerTransform = CATransform3DMakeAffineTransform(
CGAffineTransform.identity.scaledBy(x: 0.5, y: 0.5))
UIView.animate(withDuration: 2, animations: {
myView.layer.sublayerTransform = CATransform3DIdentity
})
なぜ、sublayerTransform
にアニメーションが適用されないのですか? CALayer
はAnimatableであることに注意してください。