ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS] UMC iOS ์„ธ๋ฏธ๋‚˜ 8์ฃผ ์ฐจ
    iOS/UMC 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()
            })
        }
    }

     

     

     

     

     

Designed by Tistory.