swift 座標位置・スケール・回転変更
2021-08-16 10:52:25
// 移動
view.transform = CGAffineTransform(translationX: 0, y: 150)
// 2倍
view.transform = CGAffineTransform(scalex: 2.0, y: 2.0)
// ½倍
view.transform = CGAffineTransform(scalex: 0.5, y: 0.5)
// 反転
view.transform = CGAffineTransform(scalex: -1.0, y: 1.0)
// 30度回転
let angle = 30 * CGFloat.pi / 180
view.transform = CGAffineTransform(rotationAngle: CGFloat(angle));
private func presentAnimation(with transitionContext: UIViewControllerContextTransitioning, viewToAnimate: UIView) {
viewToAnimate.clipsToBounds = true
viewToAnimate.transform = CGAffineTransform(
translationX: viewToAnimate.bounds.size.width, y: 0)
UIView.animate(withDuration: transitionDuration(
using: transitionContext),delay: 0.0, usingSpringWithDamping: 100.0,
initialSpringVelocity: 0.1, options: .curveEaseOut) {
viewToAnimate.transform = CGAffineTransform(translationX: 0, y: 0)
} completion: { finised in
transitionContext.completeTransition(finised)
}
}
private func dismissAnimation(with transitionContext: UIViewControllerContextTransitioning, viewToAnimate: UIView) {
UIView.animateKeyframes(withDuration: transitionDuration(
using: transitionContext),delay: 0.0,options: .calculationModeLinear) {
UIView.addKeyframe(withRelativeStartTime: 0.0, relativeDuration: 0.5) {
viewToAnimate.transform = CGAffineTransform(
translationX: viewToAnimate.bounds.size.width, y: 0)
}
} completion: { (finised) in
transitionContext.completeTransition(finised)
}
}