-
[iOS] UITextField ์ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ๋ฐฉ์งํ๊ธฐiOS/๐ค App 2022. 11. 3. 23:26
์ซ์๋ง ์ ๋ ฅํด์ผํ๋ ํ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด ๋, ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํตํด ๋ฌธ์๊ฐ ์ ๋ ฅ๋๋ ๊ฒ๋ ๋ฐฉ์งํด์ผ ํ ๊ฒ์ด๋ค. ๋ถ์ฌ๋ฃ๊ธฐ๋ก ๋ฌธ์๊ฐ ์ ๋ ฅ๋ ์ดํ์ ๊ฐ์งํด์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ง๋ง, ๋ถ์ฌ๋ฃ๊ธฐ ์์ฒด๋ฅผ ์์ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ค ์๋ ์๋ค. UITextField ์ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ๋ฐฉ์งํด๋ณด์. ์ฌ์ฉ์๋ UITextField ๋ฅผ ํญํ์ฌ ์๋์ ๊ฐ์ UI ๋ฅผ ํ๋ฉด์ ๋์ธ ์ ์๋ค. ์ด๊ฒ์ editing menu ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฆฌ๊ณ editing menu ๊ฐ ๋ฑ์ฅํ๊ธฐ ์ง์ ์ ํธ์ถ๋๋ ๋ฉ์๋๊ฐ ์๋ค. canPerformAction(_:withSender:) ์ด๋ค. ์ด ๋ฉ์๋๋ UIResponder ์ ์ ์๋์ด์๋ค. UITextField ๋ UIResponder ๋ฅผ ์์ํ ํด๋์ค์ด๋ฏ๋ก, ์ฌ์ฉ์๊ฐ TextField ๋ฅผ ํญํ ๋..
-
[iOS] ์ปค์คํ ํฐํธ๋ฅผ ์ ์ฉํด๋ณด์iOS/๐ค App 2021. 11. 6. 02:10
์๋ ํ์ธ์ ๐ถ ์ด๋ฒ์๊ฐ์๋ ํ๋ก์ ํธ์ ์ปค์คํ ํฐํธ๋ฅผ ์ ์ฉ์์ผ๋ณด๊ฒ ์ต๋๋ค ์ฌ์ค ์ด๊ฑด ๊ณต์๋ฌธ์์ ๋ฐฉ๋ฒ์ด ๋๋ฌด ์๋์์์ด์... ๊ทธ๋ฐ๋ฐ ์ ์ฌ๋ก๋ ๋ณด์ฌ์ค๊ฒธ + ๋ณต์ตํด์ ์ ๊ธฐ์ตํด๋จน์ผ๋ ค๊ณ ์ฐ๋ ๊ธ์ ๋๋น ์ ๊ฐ ์งํ์ค์ธ ํ๋ก์ ํธ๋ Roboto ๋ผ๋ ํฐํธ๋ฅผ ์ฌ์ฉํ๊ณ ์์๋๋ฐ ์ค์ ์ ์ฉ์์ผ๋ณด๋ ํผ๊ทธ๋ง์ ๋ค๋ฅด๊ฒ ํ์๋ ๊ฒ์ด ๋ฌธ์ ์์ด์ ์ง์ ๋ ๋ฌธ์ ์ ์: 1. ์ซ์ 0์ ๋น๊ธ์ด ๊ฐ์์ด์ ๋ณ๋ก๋ค (๊ธฐ๊ณ์ ์ผ๋ก ๋ณด์ธ๋ค?) 2. ๊ณต๋ฐฑ์ ๋๋น๊ฐ ๋๋ฌด ํฌ๋ค ๊ทธ๋์ ์์ง ์ถ๊ฐ๋ ์์๊ฐ ๋ง๊ธด ํ์ง๋ง ๋์์ธ์ ์์ฑ๋๊ฐ ๋จ์ด์ ธ๋ณด์์ต๋๋ค. Attritbuted String ์ ์ฌ์ฉํ ์ ๋ ์์์ง๋ง ๋ชจ๋ ํ ์คํธ์์์ ์ด๊ฒ์ ์ ์ฉํ๋๋ฐ ๋๋ ๋น์ฉ๋ณด๋ค ํฐํธ๋ฅผ ๊ทธ๋ฅ ๋ณ๊ฒฝํ๋๊ฒ ๋น ๋ฅด๊ฒ ๋ค๊ณ ์๊ฐํ๊ณ , ๊ทธ๋์ Spoqa Han Sans Neo ๋ก ๋ณ๊ฒฝํ๊ธฐ..
-
[iOS] init(nibName:bundle:)๊ณผ init?(coder:) ์์๋ณด๊ธฐiOS/๐ค App 2021. 10. 25. 14:21
์๋ ํ์ธ์๐ถ ์ด๋ฒ ์๊ฐ์๋ UIViewController ์ ๋ ์์ฑ์์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ธ์ ํตํด ์์ฑ์๊ฐ ์ธ์ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ์๊ฒ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค! UIViewController ๋ฌธ์์์ ์ ๊ณตํ๋ ViewController ๋ฅผ ์์ฑํ ์ ์๋ ๋ฐฉ๋ฒ init(nibName:bundle) ์์๋ณด๊ธฐ ์ฒซ๋ฒ์งธ ์ ๋ฌ์ธ์ nibName nib ์ xib ํน์ storyboard ํ์ผ์ ๋น๋์ ๊ฒฐ๊ณผ๋ฌผ์ ๋๋ค. xib ํ์ผ๋ก ์ ์ํ VC ๋ ๊ทธ ์ด๋ฆ์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ nib ํ์ผ๋ก ๋ณํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ViewController.xib ๋ "ViewController.nib" ์ผ๋ก ๋ณํ๋ฉ๋๋ค. nibName์ ViewController ๊ฐ ๋๊ฒ ๋ค์! ์คํ ๋ฆฌ๋ณด๋๋ ์กฐ๊ธ ๋ค๋ฆ ๋๋ค. xib ์ ๋ฌ๋ฆฌ ์คํ ๋ฆฌ๋ณด๋๋..
-
[iOS] clipsToBounds ์ masksToBoundsiOS/๐ค App 2021. 10. 19. 23:45
์๋ ํ์ธ์๐ถ ์ด๋ฒ ์๊ฐ์๋ clipsToBounds ์ masksToBounds ๋ฅผ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. UIView ์ CALayer CALayer ๋? iOS ์์ ๋ชจ๋ UIView ์ธ์คํด์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ CALayer ์ธ์คํด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. CALayer ๋ ์๊ฐ์ ์ธ ์ญํ ์ ๋ด๋นํ๋ ์ค๋ธ์ ํธ์ ๋๋ค. ( ์ฝํ ์ธ ์บ์ฑ, ์ ๋๋ฉ์ด์ ์ฑ๋ฅ ์ํฌํธ ๋ฑ) ๋ทฐ์ ๋ ์ด์ด ์ธ์คํด์ค๋ layer ์์ฑ์ ํตํด์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๋ ์ด์ด๋ ์๊ฐ์ ์ธ ์ญํ ์ ๋ง๊ฒ ๋ค์ํ ๊ด๋ จ ์์ฑ์ ์ ๊ณตํ๊ณ , ์ปค์คํ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ทฐ์ ๋ชจ์๋ฆฌ, ๊ทธ๋ฆผ์, ํ์ ๊ณผ ๊ฐ์ ์ ๋๋ฉ์ด์ ์ ํํํ ๋ layer ์ ํ์ ์์ฑ์ ์ฌ์ฉํฉ๋๋ค. clipsToBounds ๋ UIView ์ ํ์ ์์ฑ ์ค ํ๋์ ๋๋ค. masksToBo..
-
[SSAC ์น] iOS ๊ฐ๋ฐ์ ๋ฐ๋ท๊ณผ์ ํฉ๊ฒฉ ํ๊ธฐ (2021)iOS/๐ค App 2021. 9. 24. 20:17
์๋ ํ์ธ์.๐ถ ์ต๊ทผ ์ ๋ ์์ธ ์ํํธ์จ์ด ์์นด๋ฐ๋ฏธ ํด๋ฌ์คํฐ (SSAC) ์์ ์งํํ๋ ์คํ๋ผ์ธ ๋ถํธ์บ ํ์ ์ง์ํ์๋๋ฐ์. ์น์์ ์งํํ๋ ํ๋ก๊ทธ๋จ๋ค์ ๊ฒฝ์๋ฅ ์ด ์ต์ 11: 1์์ 36:1 ๊น์ง ๋๋ค๊ณ ํด์ ์ง๋ ๊ฒ๋จน์์๋๋ฐ ์ด์ข๊ฒ ํฉ๊ฒฉํ์ฌ 9/28(์) ๋ถํฐ ๊ต์ก์ ๋ฐ๊ฒ ๋์์ต๋๋ค. ์ง์ ๋๊ธฐ ๐ฅ ์ด ๊ณผ์ ์ ์ง์ํ ๊ฐ์ฅ ํฐ ์ด์ ๋ iOS ๊ฐ๋ฐ์๋ก ์ทจ์งํ๊ธฐ ์ํด ํ์ํ ํฌํธํด๋ฆฌ์ค๋ฅผ ๋ง๋ค๊ณ , ์ค๋ฌด์์์ ๊ฒฝํ์ ์ป์ ์ ์๋ ๊ฒ์ด์์ต๋๋ค. ์ปค๋ฆฌํ๋ผ์ ๊ธฐ๋ณธ ๊ต์ก (2๊ฐ์) + ํฌํธํด๋ฆฌ์ค (์ฝ 3.5๊ฐ์) ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๋งค์ฃผ ๋๋ฃ๋ค๊ณผ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ๋ฉํ ๊ฐ ํฐ์นญํด์ฃผ๋ ์ํด๋ฆฌ ์ปจํผ๋ฐ์ค ์๊ฐ์ด ์์ต๋๋ค. ํ๋ฃจ ๋จ์๋ก ๋ณด์๋ฉด ๋ณดํต ์ค์ 9์ ๋ถํฐ ๋ฎ 1์์ ๋ ๊น์ง ์จ๋ผ์ธ ๋ผ์ด๋ธ ๊ฐ์๋ฅผ ์๊ฐํ๊ณ , ์ดํ๋ ๊ด๋ จ ์ค..
-
[iOS] Safe Area ์ Layout Margins ์ด๋?iOS/๐ค App 2021. 8. 10. 15:47
์๋ ํ์ธ์๐ถ ์ด๋ฒ ์๊ฐ์๋ Safe Area ์ Layout Margins ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ์ด์ ๊น์ง๋ ์ ํํ๊ฒ ๋ชจ๋ฅด๊ณ ์ฌ์ฉํ๋ ๊ฐ๋ ๋ค์ ์ด๋ฒ ๊ธฐํ์ ๊ณต๋ถํ๋ฉด์ ์ ๋๋ก ์์๋ณผ ์ ์๋ ์ข์ ๊ธฐํ์๋๋ฐ์. ๋๋ฌด ๋ฟ๋ฏํ ๋ง์์ ์ ๋๊ฒ ๊ธ์ ์ ์์ต๋๋ค. ๊ทธ๋ผ ์์ํ ๊ฒ์~!!!!๐ฅ๐ฅ๐ฅ Layout Margins ์ ๊ฐ๋ ๋ทฐ์ ์ญํ ์ค ํ๋๋ ์ปจํ ์ธ ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ๋๋ค. ๋ทฐ ์์๋ ์ปจํ ์ธ ๊ฐ ์๋๋ฐ์. ์ด ์ปจํ ์ธ ์ ์์น๋ฅผ Layout Margins ์ ํตํด์ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ค๋ฅธ ๋ทฐ์ ์ํด ์ปจํ ์ธ ๊ฐ ๊ฒน์น๋ ๊ฒ์ ๋ง์์ค ์ ์์ต๋๋ค. Layout Margins ๋ ์ปจํ ์ธ ์ ๋ทฐ์ bounds ์ฌ์ด์ ์๊ฐ์ ์ธ ๋ฒํผ์ ๋๋ค. ๋ฒํผ๋ ์ฝ๊ฒ ์์ถฉ์ฌ ์ญํ ์ ํ๋ ๊ณต๊ฐ์ผ๋ก ์๊ฐํ๋ฉด ๋๋๋ฐ์. ํน์ง์ ๋ทฐ ..
-
[iOS] Container View Controller ๋?iOS/๐ค App 2021. 7. 26. 18:09
1์ฐจ ์์ : 21.09.30 ์๋ ํ์ธ์ ๐ถ ์ด๋ฒ ์๊ฐ์๋ ViewController ์ ์ข ๋ฅ ์ค ํ๋์ธ Container View Controller ์ ๋ํด์ ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ผ ์์ํ ๊ฒ์๐ฅ ์ฐ์ View Controller ๋ฅผ ์ญํ ๋ก ๊ตฌ๋ถํ์๋ฉด ํฌ๊ฒ ๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค! ์ฒซ๋ฒ์งธ๋ Content View Controller ๋ก์, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ทฐ ์ปจํธ๋กค๋ฌ์๊ฒ ๊ธฐ๋ํ๋ ์ญํ ( ์ฑ ๋ด ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๋ฑ) ์ ์ํํ๋ ๋ทฐ ์ปจํธ๋กค๋ฌ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก UIViewController ๋ฅผ ์ง์ ์๋ธํด๋์ฑํ์ฌ ์ปค์คํ ํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋๋ค. class MyHomeViewController: UiViewController { ... } ๋๋ฒ์งธ๋ ์ด๋ฒ ์๊ฐ์ ๋ค๋ฃฐ Container View Contro..
-
[iOS] ๋ฆฌ์คํฐ๋ ์ฒด์ธ (Responder Chain) ์ด๋? (feat. UIResponder, First Responder, UIEvent)iOS/๐ค App 2021. 7. 12. 13:25
์๋ ํ์ธ์๐ถ ์ด๋ฒ ์๊ฐ์๋ ๋ฆฌ์คํฐ๋ ์ฒด์ธ (Responder Chain) ์ ๋ํด์ ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค. ๋ฆฌ์คํฐ๋ ์ฒด์ธ์ ๊ณต๋ถํ๋ฉด ์ฑ ๋ด์์ ์ด๋ฒคํธ๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋๋์ง ์ ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ด ๊ธ์์ ๋ค๋ฃจ๋ ๊ฒ: UIResponder, Responder Chain, First Responder, UIEvent ๊ทธ๋ผ ์์ํด๋ณผ๊ฒ์๐ฅ ๋ฆฌ์คํฐ๋ ์ฒด์ธ์ ๋ฆฌ์คํฐ๋ ์ค๋ธ์ ํธ๋ค์ด ๋์ ์ผ๋ก ๊ตฌ์ฑ๋ ์ด๋ฒคํธ ์ ๋ฌ ์ฒด์ธ ์ ๋๋ค. ์ฑ์ ๋ฆฌ์คํฐ๋ ์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฆฌ์คํฐ๋ ์ค๋ธ์ ํธ๋ UIReponder ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. ๋ํ์ ์ผ๋ก UIView (๊ทธ๋ฆฌ๊ณ UIView์ ์๋ธํด๋์ค์ธ UIWindow) , UIViewController, UIApplication ๊ฐ ์์ต๋๋ค. ๋ฆฌ์คํฐ..
-
[iOS] ์๋์ฐ๋? (feat. UIWindow)iOS/๐ค App 2021. 7. 5. 17:43
์๋ ํ์ธ์๐ถ ์ด๋ฒ ์๊ฐ์๋ ์๋์ฐ์ ๋ํด์ ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค. ์๋์ฐ๋ UIWindow ์ค๋ธ์ ํธ๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ง์ธ๋ฐ์. ์๋์ฐ๋ผ๋ ๊ฐ๋ ์ด ํ์ํ๊ธฐ ์์ํ ๋๋ ์๋ง ์คํ ๋ฆฌ๋ณด๋ ์์ด UI๋ฅผ ์ฒ์ ์ฝ๋๋ก ๊ตฌํํด๋ณผ ๋ ์ผ ๊ฒ ๊ฐ์์. ์ด ๊ธ์์๋ ์ธ์ ์ง์ ์๋์ฐ๋ฅผ ์์ฑํด์ผ๋๋์ง์ ๋ํด์๋ ๋ค๋ฃจ์์ต๋๋ค. ๋ ๊ฐ์ ๊ณต์๋ฌธ์๋ฅผ ์ข ํฉํด์ ์ ๋ฆฌํ๋ค๋ณด๋ ๋ด์ฉ์ด ์ข ๋ง์์ง ๊ฒ ๊ฐ๋ค์. ์์ฝ ํด๋ณด์๋ฉด ์๋์ฐ๋ ๋ทฐ๋ค์ ๋ด๋ ์ปจํ ์ด๋์ด๋ค. ์๋์ฐ๋ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํด์ฃผ๋ ๋งค๊ฐ์ฒด์ด๋ค. iOS ์ฑ์ ์ฝํ ์ธ ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์ ์ต์ 1๊ฐ ์ด์์ ์๋์ฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. (๋ณดํต 1๊ฐ) ์์คํ ์๋์ฐ์์ ์์ฑ๋ ์ด๋ฒคํธ๋ค์ Key Window ๋ก ์ ๋ฌ์ด ๋๋ค. ์ด ๊ธ์๋ ์๋ ๊ฒ External Display ์ ๊ด๋ จ๋ ๋ด์ฉ ๊ทธ๋ผ ์์ํด๋ณผ..