kabochappinote

articlesswift
swift 座標位置・スケール・回転変更

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)
    }
}
back