Project 11 - AnimationโœŒ๐Ÿป

DaYยท2021๋…„ 4์›” 11์ผ
1

iOS

๋ชฉ๋ก ๋ณด๊ธฐ
29/52
post-thumbnail

CGAffineTransform

๋ทฐ์˜ ํ”„๋ ˆ์ž„์„ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  2D ๊ทธ๋ž˜ํ”ฝ์„ ๊ทธ๋ ค์ค€๋‹ค.
๊ฐ์ฒด๋ฅผ ํšŒ์ „, ํฌ๊ธฐ ์กฐ์ •, ๋ณ€ํ™˜ ๋˜๋Š” ๊ธฐ์šธ์ด๋Š” ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • scale : ๋ทฐ์˜ ๋„“์ด์™€ ๋†’์ด ๋ฐฐ๋กœ ์ฆ๊ฐ€
  • rotationAngle : ๋ทฐ ํšŒ์ „
  • translation : ๋ทฐ์˜ ์œ„์น˜ ์ด๋™

TableView์˜ Cell์— Animation์„ ๋„ฃ์–ด ์—ญ๋™์ ์œผ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Spring ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉ

  • usingSpringWithDamping : ์Šคํ”„๋ง ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ •์ง€ ์ƒํƒœ์˜ damping ๋น„์œจ
  • initialSpringVelocity : ์Šคํ”„๋ง์˜ ์†๋„. 0์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์Šคํ”„๋ง์˜ ์†๋„ ์ฆ๊ฐ€
func animateTable() {
    masterTable.reloadData()
        
    let cells = masterTable.visibleCells
    let tableHeight = masterTable.bounds.size.height
        
    for cell in cells {
        cell.transform = CGAffineTransform(translationX: 0, y: tableHeight)
    }
        
    var index = 0
        
    for cell in cells {
        UIView.animate(withDuration: 1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: {
            cell.transform = CGAffineTransform(translationX: 0, y: 0)
        }, completion: nil)
        index += 1
    }
}

์ ์šฉ๋œ ๋ชจ์Šต

0๊ฐœ์˜ ๋Œ“๊ธ€