iOS/UMC

[iOS] UMC iOS μ„Έλ―Έλ‚˜ 8μ£Ό μ°¨

year.number 2022. 11. 14. 22:02

 

 

πŸ“• Animation

μ• λ‹ˆλ©”μ΄μ…˜μ€ λŒ€ν‘œμ μœΌλ‘œ 3κ°€μ§€ κ²½μš°μ— μ‚¬μš©ν•œλ‹€.

 

1. μ‹œμŠ€ν…œ μƒνƒœ λ‚˜νƒ€λ‚΄κΈ°

2. 메뉴 및 μ „ν™˜μ„ λ‚˜νƒ€λ‚΄κΈ°

3. μ‹œκ°μ μΈ ν”Όλ“œλ°± 제곡

 

 

μ• λ‹ˆλ©”μ΄μ…˜μ„ λ‚˜νƒ€λ‚΄λŠ” λ°©λ²•μ—λŠ” 2κ°€μ§€κ°€ μžˆλ‹€.

1. UIView의 animate μ‚¬μš© (iOS 4~)

2. Core Animation μ‚¬μš© (iOS 10~)

 

 


UIView.animate λ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄μ„œ μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν•΄λ³΄λŠ” μ‹€μŠ΅

 

//
//  ViewController.swift
//  Week8
//
//  Created by yeonsu on 2022/11/14.
//

import UIKit

class ViewController: UIViewController {

    
    @IBOutlet weak var orangeView: UIView!
    @IBOutlet weak var orangeViewTopConstraint: NSLayoutConstraint!
    @IBOutlet weak var orangeViewHeightConstraint: NSLayoutConstraint!
    
    @IBOutlet var purpleViewTapGestureRecognizer: UITapGestureRecognizer!
    

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // #selector: object-c의 ν•¨μˆ˜ μ‚¬μš©
        purpleViewTapGestureRecognizer.addTarget(self, action: #selector(purpleViewDidTap))
    }
    
    @objc func purpleViewDidTap() {
        // TODO: - μ• λ‹ˆλ©”μ΄μ…˜ μΆ”κ°€
        UIView.animate(withDuration: 3, animations: {
            self.orangeViewTopConstraint.constant = 200
            self.orangeViewHeightConstraint.constant = 100
            self.view.layoutIfNeeded()
        }
        )
    }

    // πŸ“Œ UIView.animate: μ• λ‹ˆλ©”μ΄μ…˜ μ μš©ν•˜κΈ°
    @IBAction func buttonDidTap(_ sender: Any) {
        UIView.animate(withDuration: 3, animations: {
            self.orangeViewTopConstraint.constant = 200
            self.orangeViewHeightConstraint.constant = 300
            self.view.layoutIfNeeded()  // 변경사항에 λŒ€ν•œ μ—…λ°μ΄νŠΈ 반영
            // self.view.setNeedsLayout()
        })
    }
}