UniversityMakeUsChallenge/UMCiOS

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

κΉ€κ°œλ―Έ_ 2022. 11. 14. 21:55

 

 

 

 

9:20 ~

 

 

 

 

 

 

μ• λ‹ˆλ©”μ΄μ…˜ + 제슀처
UI View + Button

 

 

 

λ ˆμ΄μ•„μ›ƒμ„ λ°”κΎΈκ³  싢을 λ•Œ

μŠ€ν† λ¦¬λ³΄λ“œμ— μž‘ν˜€μžˆλŠ” μ˜€ν†  λ ˆμ΄μ•„μ›ƒμ„ λŒμ–΄μ˜¬ 수 μžˆλ‹€

νŒŒλž€ 싀선을 끌고 μ˜¨λ‹€. (IBOutlet으둜 μ‚¬μš©)

 

 

μ˜€λ Œμ§€ λ·° 탑

 

 

μ΄λ ‡κ²Œ λŒμ–΄μ˜¨λ‹€!

 

 

μ΄λ ‡κ²Œ μ„ΈνŒ…! :)

 

 

UIView μ—λ‹ˆλ©”μ΄μ…˜ νŒŒλΌλ―Έν„° 맀우 λ§Žλ‹€

 

 

 

μ—¬κΈ°μ„œ μ“Έ κ²ƒλ§Œ 남김

 

 

우리의 λͺ©ν‘œ: μ˜€λ Œμ§€ 뷰의 탑과 ν—€μ΄νŠΈ μƒμˆ˜κ°’μ„ λ³€ν™”μ‹œν‚¨λ‹€

 

 

 

 

 

 

 

 

 

 

μ• λ‹ˆλ©”μ΄μ…˜μ΄ 적용이 μ•ˆλ˜κ³  (3μ΄ˆκ°„)

λ°”λ‘œ μ«™ 펴짐

-> λ³€κ²½λœ UI λ‚΄μš©μ΄ λ°˜μ˜λ˜μ–΄μ•Ό ν•œλ‹€.

-> λ³€κ²½λ˜μ§€ μ•ŠλŠ” 것 

: 더 μžμ„Έν•˜κ²Œ μ•Œμ•„λ³΄μž

 

 

UI κ΄€λ ¨ 변경사항이 μ—…λ°μ΄νŠΈκ°€ λ˜μ–΄μ•Όλœλ‹€κ³  Viewμ—κ²Œ μ•Œλ €μ£ΌλŠ” 것

 

 

layout의 μ—…λ°μ΄νŠΈλ₯Ό λͺ…λ Ήν•˜λŠ” μ½”λ“œκ°€ κΌ­ ν•„μš”ν•˜λ‹€

μ™œ μ• λ‹ˆλ©”μ΄μ…˜μ΄ 적용이 μ•ˆλ˜μ§€? ν•΄λ©”λŠ” κ²½μš°κ°€ λ°œμƒν•œλ‹€. 

layoutIfNeeded() κΌ­ ν™œμš©!

λ°”λ‘œλ°”λ‘œ UI μ—…λ°μ΄νŠΈλ“€μ΄ 적용이 λœλ‹€. 

 

 

μ• λ‹ˆλ©”μ΄μ…˜ μ μš©ν•  λ•ŒλŠ”,

UIView의 animate λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•  수 μžˆλ‹€.

animate λ©”μ†Œλ“œμ—λŠ” λ‹€μ–‘ν•œ parameter이 μžˆλŠ”λ°,

그것 μ€‘μ—μ„œ ν•„μš”ν•œ κ²ƒλ§Œ ν™œμš©ν•˜λ©΄ λœλ‹€.

 

 

 

μ—¬λŸ¬κ°€μ§€ μ œμŠ€μ³κ°€ 쑴재 -> ν•„μš”ν•œ 것 μ“°λ©΄ 됨

 

 

 

λ²„νŠΌ μ§€μš°κ³ , λ·° μžμ²΄κ°€ λˆŒλ Έμ„ λ•Œ μ μš©ν•΄λ³΄μž

 

 

νƒ­ 제슀쳐λ₯Ό λŒμ–΄μ„œ UI View 내뢀에 λ„£λŠ”λ‹€!

 

 

 

κ³„μΈ΅μ—μ„œ νƒ­ 제슀쳐λ₯Ό λŒμ–΄μ„œ κ°€μ Έμ˜¨λ‹€

 

 

 

 

 

 

addTarget ν™œμš©

 

 

νƒ€κ²Ÿ: ν•΄λ‹Ή 뷰컨

μ•‘μ…˜: Selector -> #selectorλ₯Ό 톡해 전달

-> object-C λŸ°νƒ€μž„μ— μ˜μ‘΄ν•˜λŠ” ν•¨μˆ˜λ₯Ό 달아쀄 λ•Œ #

 

 

 

 

ν‰μ†Œμ— ν•¨μˆ˜ μž‘μ„±ν•˜λ“―μ΄ μ“΄λ‹€

μ•žμ— @objc μΆ”κ°€ν•˜λ©΄ 됨 

이 ν•¨μˆ˜λŠ” 였브젝트 씨 ν•¨μˆ˜μž…λ‹ˆλ‹€ μ„ μ–Έλœ 것

 

 

 

 

μ•„κΉŒμ™€ 동일

 

 

였였

 

 

Tap 제슀처 : 슀크린이 λˆŒλ Έμ„ λ•Œ

 

 

 

νƒ­ν•˜λ©΄ μŠ‰μŠ‰ 늘림

 

 

 

completion ν™œμš© : λ§ˆμ§€λ§‰μœΌλ‘œ μ‹€ν–‰μ‹œν‚¬ 것이 μžˆμ„ λ•Œ ν™œμš©

 

λ‹€μ‹œ νƒ­ν•˜λ©΄ λ‹€μ‹œ μž‘μ•„μ§€λŠ” λ™μž‘μ„ κ΅¬ν˜„ν•΄λ³΄μž

 

 

κ°„λ‹¨ν•˜κ²Œ flag μ„ μ–Έ

 

 

 

 

_ in 

μ»΄ν”Œλ¦¬μ…˜λ„ ν΄λ‘œμ €

λ°˜ν™˜κ°’μ„ 받아쀄 νŒŒλΌλ―Έν„° -> μ—†μœΌλ‹ˆκΉ 언더바

ν΄λ‘œμ €λ₯Ό λŒ€μƒμœΌλ‘œ 곡뢀λ₯Ό 해보면 이해할 수 μžˆμ„ 것이닀.

ν΄λ‘œμ € 곡뢀!

 

 

μ• λ‹ˆλ©”μ΄μ…˜μ΄ λ‹€ μ’…λ£Œλœ 이후, λ§ˆμ§€λ§‰μœΌλ‘œ λ™μž‘ν•˜κ³  싢은 κ±Έ λ„£μœΌλ©΄ 됨

 

 

 

ꡳ이 λ²„νŠΌμ΄ μ•„λ‹ˆλ”λΌλ„,

μœ μ €μ˜ μž…λ ₯을(μ•‘μ…˜μ„) λ°›λŠ” 경우

UI Gesture Recognizer ν™œμš©ν•  수 μžˆλ‹€.

8개 쀑 Tap 제슀쳐λ₯Ό ν™œμš©ν•΄λ³Έ 것

λ‹€μ–‘ν•œ 제슀쳐, μ• λ‹ˆλ©”μ΄μ…˜μ„ ν™œμš©ν•΄λ³΄μž! :)

 

 

 

 

 

 

 

 

 

- μ• λ‹ˆλ©”μ΄μ…˜ parameter 쀑 μ˜΅μ…˜: μ• λ‹ˆλ©”μ΄μ…˜μ„ μ‹€ν–‰μ‹œν‚¬ λ•Œ, μΆ”κ°€μ μœΌλ‘œ 쀄 κΈ°λŠ₯을 기본적으둜 Swiftκ°€ μ œκ³΅ν•¨

: νŒμ—… 창을 λ„μšΈ λ•Œ, (μ˜€λžœμ§€ λ·°λ₯Ό μ„ νƒν–ˆμ„ λ•Œ, νŒμ—… 창이 νšŒμ „ν•˜λ©΄μ„œ μ˜¬λΌμ˜€κ±°λ‚˜ λ“±λ“± μ• λ‹ˆλ©”μ΄μ…˜ μΆ”κ°€ κΈ°λŠ₯)

 

 

 

 

CoreAnimation

: μƒμ„Έν•œ μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν•˜κ³  싢을 λ•Œ 곡뢀해보면 μ’‹λ‹€ 

: 쑰금 μ–΄λ €μšΈ 수 μžˆμœΌλ‹ˆκΉ ν•„μš” μ‹œ 곡뢀

 

 

 

제슀처 겹침

: μƒλŒ€λ°©κ³Ό λ‚˜λˆ„μ—ˆλ˜ μ±„νŒ… 내역이 μŒ“μž„

μŠ€ν¬λ‘€μ„ 톡해 μ €λ²ˆμ£Όμ— λ‚˜λˆ΄λ˜ λŒ€ν™” λ³Ό 수 있음 

λ§Œμ•½μ— μ±„νŒ…λ‚΄μ—­μ΄ λ‚˜μ™€μžˆλŠ” 창에, λ‹€λ₯Έ 제슀처 μΆ”κ°€ν–ˆλ‹€λ©΄?

ex) μŠ€μ™€μ΄ν”„ 제슀처 μΆ”κ°€

슀크둀 제슀처 + λ‚΄κ°€ μΆ”κ°€ν•œ 제슀처 κ²ΉμΉ¨

제슀처끼리 좩돌 -> λŒ€ν™” λ‚΄μš© 슀크둀 ν–ˆμ„ λ•Œ μ–΄λ–€ 제슀처λ₯Ό μΆ”κ°€ν•΄μ•Όν•˜λŠ”μ§€ μ•± λ‚΄μ—μ„œ ν—·κ°ˆλ¦΄ 수 μžˆλ‹€

λ‘˜ 쀑 ν•˜λ‚˜ λ¬΄μ‹œλ˜κ±°λ‚˜, λ‘˜ λ‹€ μž‘λ™ μ•ˆν•˜κ±°λ‚˜ λ“±λ“± λ¬Έμ œμƒν™© λ°œμƒν•¨

μ–΄λ–»κ²Œ ν•΄κ²°ν•˜λ©΄ μ’‹μ„κΉŒ? 

κΈ°μ‘΄ vs λ‚΄κ°€ μΆ”κ°€ν•œ 것 -> μ–΄λ–€κ²Œ 싀행될 μ§€ μ•±μ—κ²Œ μ•Œλ €μ€˜μ•Ό ν•œλ‹€

 

 

 

 

 

 

escaping Closure

- completion

- ν΄λ‘œμ €μ— λŒ€ν•œ κ°œλ…μ΄ μžˆλ‹€λ©΄ μ• λ‹ˆλ©”μ΄μ…˜ κ³΅λΆ€ν•˜λŠ”λ° λ§Žμ€ 도움이 될 것

- μŠ€μœ„ν”„νŠΈμ—μ„œλŠ” ν΄λ‘œμ €κ°€ 정말 많이 ν™œμš©λ˜κ³  μžˆλ‹€.

- iOS 개발자라면 λ°˜λ“œμ‹œ κ³΅λΆ€ν•˜κ³  λ„˜μ–΄κ°€μ•Ό ν•˜λŠ” λΆ€λΆ„

- 정말 μ€‘μš”ν•œ κ°œλ… 

- animate μ½”λ“œλ₯Ό λœ―μ–΄μ„œ λ“€μ–΄κ°€λ©΄, animations이 escaping closure둜 λ˜μ–΄μžˆλ‹€.

: λ„€νŠΈμ›Œν‚Ήμ—μ„œλ„ λ°˜λ“œμ‹œ ν™œμš©λ¨ (μ„œλ²„ μ—°κ²° λ‚΄μš©μ—μ„œ) -> 미리 μ˜ˆμŠ΅ν•˜λ©΄ μˆ˜μ›”ν•˜κ²Œ 곡뢀할 수 μžˆλ‹€. 

 

 

 

 

 

μŠ€νƒ λ‹€λ“œ λ―Έμ…˜

- κΈ°μ‘΄ ν”„λ‘œμ νŠΈμ— μ• λ‹ˆλ©”μ΄μ…˜ μΆ”κ°€

- μ΅œμ†Œ 2~3개λ₯Ό λΆ™μ—¬λ³΄μž

 

 

 

μ²Όλ¦°μ§€ λ―Έμ…˜

- μ—†λ‹€

- κ°œμΈκ³΅λΆ€ Or

- λΆ€μ‘±ν–ˆλ˜ λ―Έμ…˜ λ³΄μΆ©ν•˜λŠ” μ‹œκ°„μ„ κ°€μ Έλ³΄μž

- escaping closure κΌ­ κ³΅λΆ€ν•΄λ³΄μž!