-
[UIKit] ๋ทฐ ํ๊น ์ฌ์ฉํด๋ณด๊ธฐ (View Tagging)iOS/๐ค App 2021. 3. 5. 15:19
์ฐธ๊ณ ๊ธ: developer.apple.com/documentation/uikit/uiview/1622493-tag
๋ทฐ ์ปจํธ๋กค๋ฌ์์ ๋ทฐ์ ์ ๊ทผํ๋ ค๋ฉด ๋ณดํต @IBOutlet ์ ํตํด ์ฐธ์กฐ๋ฅผ ์ป์ด์ ์ ๊ทผํฉ๋๋ค.
์ด ์ธ์ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ๋ฐ๋ก View Tagging ์ ๋๋ค.
๊ฐ๊ฐ์ ๋ทฐ์ ํ๊ทธ ๊ฐ์ ๋ถ์ฌํด์, UIView ์ ์ธ์คํด์ค ๋ฉ์๋์ธ viewWithTag(_:) ์ ํ๊ทธ ๊ฐ์ ์ ๋ฌํ์ฌ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฉ ์์
class MyViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() /* 1 */ let myView = view.viewWithTag(0) } }
/* 1 */
UIViewController์ view ์์ฑ์ ์ต์์ ๋ทฐ์ธ ์ปจํ ํธ ๋ทฐ ( = ๋ฃจํธ ๋ทฐ ) ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
viewWithTag(_:) ๋ UIView ์ ์ธ์คํด์ค ๋ฉ์๋์ด๋ฏ๋ก ์ด๋ ํ UIView ์์๋ ํธ์ถํ ์ ์์ต๋๋ค.
์ ์ฝ๋๋ ์ปจํ ํธ ๋ทฐ์์ ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ , ๋ฐํ๋ ๋ทฐ์ ์ฐธ์กฐ๋ฅผ myView ์์์ ์ ์ฅํฉ๋๋ค.
๋ด๋ถ์ ์ผ๋ก๋ ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น์?
1. ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ทฐ๊ฐ ์ ๋ฌ๋ ํ๊ทธ ๊ฐ (์ฌ๊ธฐ์๋ 0) ์ ๊ฐ์ง๊ณ ์๋ ์ง ํ์ธํ๋ค. -> ๋ง์ผ๋ฉด ๋ฐํ
2. ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ทฐ์ ํ์ ๊ณ์ธต์ ๋ทฐ๋ค์ ์ฐจ๋ก๋ก ๊ฒ์ฌํ๋ค. -> ์ฐพ์ผ๋ฉด ๋ฐํ
3. ๋ค ์ฐพ์๋ ์์ผ๋ฉด nil ๋ฐํ
๊ทธ๋ ๋ค๋ฉด ์ ์ฝ๋๊ฐ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ์คํ๋์๋ค๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ด๋ป๊ฒ ๋ ๊น์?
์ํฉ : ๋ชจ๋ ๋ทฐ์ ํ๊ทธ ๊ฐ์ด 0์ผ๋ก ์ค์ ๋์ด ์์
๊ฒฐ๊ณผ : ์์ 1๋จ๊ณ์ ์ํด ์์ ์ ๋ฐํํจ
์ดํด๊ฐ ๊ฐ์๋์?
๋ด๊ฐ UIImageView ์ค๋ธ์ ํธ์ ์ ๊ทผํ๊ณ ์ถ์๋ฐ, ํ๊ทธ ๊ฐ์ด 0์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์์ ๊ณ์ธต์ ๋ทฐ๊ฐ ์ด๋ฏธ ์ค๋ณต๋ ํ๊ทธ ๊ฐ 0์ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ์ ๊ทผํ ์ ์๋ ์ํฉ์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
์ ๋ฆฌ
1. @IBOutlet ๋์ ํ๊ทธ ๊ฐ์ผ๋ก ๋ทฐ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ด View Tagging ์ ๋๋ค.
2. ์ฌ ๋ด์ ๋ทฐ์ ์๊ฐ ์ ๋ค๋ฉด ์์ ์ํฉ (์ค๋ณต ํ๊ทธ ๊ฐ์ผ๋ก ์๋ํ์ง ์๋ ๋ทฐ๋ฅผ ๋ฐ๊ฒ ๋๋) ์ด ์ผ์ด๋์ง ์๊ฒ ํ ์ ์์ง๋ง,
๋ทฐ์ ์๊ฐ ๋ง์์ง๋ฉด ๋ชจ๋ ํ๊ทธ ๊ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์์ง ๊ฒ์ ๋๋ค.
3. ๋ฐ๋ผ์ ๋ณดํต @IBOutlet ์ ์ด์ฉํ์ฌ ๋ทฐ์ ์ ๊ทผํฉ๋๋ค.
๋!
'iOS > ๐ค App' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] - Cocoa Touch ์์ JSON ๋ค๋ฃจ๊ธฐ (0) 2021.05.07 'ํ์๊ธ ๋ญํน ์ฑ'์ ์ ์ํ๋ฉด์ ๋ฐฐ์ด ์ ํ๊ณ (0) 2021.03.05 [iOS] MVC ๋? (feat. Cocoa MVC) (0) 2021.03.03 [iOS] Frame ๊ณผ Bounds ์ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ (0) 2021.02.04 [iOS] About the App Launch Sequence (์ฑ ์คํ ์์ ์ ์ผ์ด๋๋ ์ผ๋ค) (1) 2021.02.02