UIKit
-
SwiftUI์์ ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ์ฌ์ฉํ๊ธฐSwiftUI 2024. 12. 12. 18:46
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์ฝ๊ฒ ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ์ ์ฌ์ฉํ๋๊ฑธ ๊ตฌํํด๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ๋จผ์ ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ๋ ๋ค์ํ ์ฐ์์ด ์์๊ฑด๋ฐ, ํ์ฌ ์ ๊ฐ ํ๊ณ ์ ํ๋ ๊ฒฐ๊ณผ๋ฌผ๋ถํฐ ๊ณต์ ํด๋ณผ๊ป์! ๋๋ฅ - ๐ ์ด๋ฐ๊ฑธ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ์ฆ, ํญ๋ทฐ์ ๊ฐ์๊ฑธ ์ฌ์ฉํ์ง ์๊ณ ์ฃ์ง ์ค์์ดํ๋ฅผ ํตํด ์ด์ ๊ณผ ์ดํ ๋ทฐ๋ก ์ฌ๋ผ์ด๋ ํ์์ผ๋ก ์์ฐ์ค๋ฝ๊ฒ ์ ํ๋๋๋ก ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ์ SwiftUI์ ์น์ด๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ๊ทธ๋ผ ํ๋ฒ ์์ํด๋ณผ๊น์? ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ๊ตฌํํ๊ธฐ๋จผ์ ์ ๊ฐ ํ๋ ๋ฐฉ์์ผ๋ก๋ SwiftUI์์๋ง ๋ชจ๋ ๊ฑธ ํด๊ฒฐํ ์ ์์ด์.๊ทธ๋ ๊ธฐ์ UIKit์ UINavigationController๋ฅผ ์ฑํํ ๋ณ๋์ InteractivePushNavi..
-
Get started with Dynamic Type (feat. WWDC 2024)iOS 2024. 8. 26. 19:10
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ๋ค์ด๋๋ฏน ํ์ ์ ๋ํด WWDC 2024์์ ๋์จ ์ธ์ ์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป Dynamic Type์ ์ฌ์ฉ์๊ฐ ์์คํ ์ ๋ฐ๊ณผ ๋ชจ๋ ์ฑ์์ ์ํ๋ ํ ์คํธ ํฌ๊ธฐ๋ฅผ ์ ํํ ์ ์๋ ๊ธฐ๋ฅ์ด์ฃ ๐์ด๋ฒ ํฌ์คํ ์์๋ ์ฃผ๋ก ์ด ๋ค์ด๋๋ฏน ํ์ ์ด ์ด๋ป๊ฒ ์๋ํ๋ฉฐ, ํ ์คํธ ํฌ๊ธฐ ๊ฐ์ ๊ฒ๋ค์ ์ด๋ป๊ฒ ์๋ณํ๊ณ ์กฐ์ ์ ํ๋์ง๋ฅผ ์ค์ ์ ์ผ๋ก ์์๋ด ๋๋ค. ํ๋ฒ ์์ํด๋ณผ๊น์? Get started with Dynamic TypeIntroduction๋์ UI๋ฅผ ๋ง๋ค๋ฉด ํ๋ฉด ํฌ๊ธฐ์ ๋ฐฉํฅ, ํ๋ซํผ์ ์๊ด์์ด ๋์ํ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ ์๊ฐ ์์ฃ .์ฌ์ฉ์๋ง๋ค ์ ํธํ๊ฑฐ๋ ํ์ํ ํ ์คํธ ํฌ๊ธฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋์ UI๋ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ๋ค์ด๋๋ฏน ํ์ ์ ๋ชจ๋ ํ ์คํธ ํฌ๊ธฐ์์ ๊ฐ๋ ์ฑ์ ๋์ฌ์ค ..
-
UIScrollView์ contentInsetAdjustmentBehavioriOS 2024. 7. 18. 08:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ UIScrollView์ contentInsetAdjustmentBehavior์ ๋ํด ์์๋ณด๊ณ ์ ์ฉํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป contentInsetAdjustmentBehavior?์ฐ์ UIKit ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ UIScrollView์ ์ธ์คํด์ค ์์ฑ์ธ contentInsetAdjustmentBehavior๋ฅผ ๊ณต์๋ฌธ์๋ฅผ ์ดํด๋ณด๋ฉด ์กฐ์ ๋ ์ปจํ ์ธ ์คํ์ ์ ๊ฒฐ์ ํ๊ธฐ ์ํ ๋์์ด๋ผ๊ณ ์๊ฐํ๊ณ ์์ด์ ๐ค ์กฐ์ ๋ ์ปจํ ์ธ ์คํ์ ?? ์ด๊ฒ ๋์ฒด ๋ญ๋ง์ผ๊น์ ๐ค ํด๋น ์ธ์คํด์ค ์์ฑ์ UIScrollView์ get set ํ๋กํผํฐ๋ก ์๋์ ๊ฐ์ด ์ ์๋์ด ์์ต๋๋ค. var contentInsetAdjustmentBehavior: UIScrollView.ContentIns..
-
UIKit์์ ViewController๊ฐ ๋ฐ์ดํฐ ์ ๋ฌiOS 2024. 1. 22. 19:06
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ UIKit์์ ViewController๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป iOS ๊ฐ๋ฐ์ ์ฒ์ ์ ํ๋ฉด์ UIKit์ ํ์ตํ์๋๋ถ๋ค์ด ์ข ์ข ViewController๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ๋ฌํ๋์ง ๋ง๋งํด ํ์๋๊ฑธ ๋ฆฌ๋ทฐ๋ ๋ฉํ ํ๋์ ํ๋ฉด์ ๋ด์ ํ๋ฒ ๊ฐ๋จํ ๋ํ์ ์ธ ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ์๋๋ฐ ๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ฃจ๋ค๊ฐ ์ด์ ์์ผ ํด๋ณด๊ฒ ๋์๋ค์..! ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์๋ค์ ์ ๋ง ๋ค์ํ๊ฒ ์ง๋ง, ์ด๋ฒ ํฌ์คํ ์์๋ ๊ฐ์ฅ ๋ํ์ ์ธ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ๋ค์ ๋ช๊ฐ์ง ๊ฐ์ด ์์๋ณผ๊น ํฉ๋๋ค ๐ ๊ทธ๋ผ ๋ฐ๋ก ์๋ค์ด๊ฐ๋๋ค~ ์ง์ ํ๋กํผํฐ ์ ๊ทผ ๊ฐ์ฅ ๋จผ์ ์ฝ๊ฒ ํด๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ VC์ ํ๋กํผํฐ์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฐ๋จํ๊ฒ ์์..
-
์๋ ๋ฌธ์ ๊ฒฐํฉ ๋ฐฉ์งํ๊ธฐiOS 2023. 11. 30. 09:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ iOS ๊ฐ๋ฐ ์ ์๋ ๋ฌธ์ ๊ฒฐํฉ์ ๋ฐฉ์งํด๋ณด๋ ๊ตฌํ์ ํ๋ฒ ์ฝ์งํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ด์ฉ๋ค ์ด๊ฑธ ํฌ์คํ ํ๊ฒ ๋์์ง? ์ผ๋จ ์ฌ๊ฑด์ ์ ๋ง์ ์ด๋ฌํฉ๋๋ค. ํ ์คํธํ๋๊ฐ ์ฃผ์ด์ง๊ณ ์ต๋ ๊ธ์์๋ 8๊ธ์๊น์ง๋ง ๋ฐ์ผ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ํ ์คํธ ํ๋์์ ์ ๋ ฅ๋์ด ๋ง๋ค์ด์ง ํ ์คํธ String์ count๊ฐ ์ด 8์ ๋๋์ง ํ๋จํด์ผ๊ฒ ์ฃ ? ์, ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. import UIKit class ViewController: UIViewController, UITextFieldDelegate { let textField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40)) let button = ..
-
AVPlayer in SwiftUI (feat. PIP)SwiftUI 2023. 3. 23. 15:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์ปค์คํ ํ AVPlayer๋ฅผ ํตํด ๋์์ ํ๋ ์ด์ด ๊ตฌ์ถ์ ํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ๋ฐ๋๋ผ SwiftUI ํ๊ฒฝ์์ ๊ตฌ์ถ์ ์งํํ์์ต๋๋ค. VideoPlayer์ ๋จ์ iOS 14๋ถํฐ SwiftUI์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ VideoPlayer๋ผ๋๊ฒ์ด ์์ต๋๋ค. ๋ฌผ๋ก ๊ฐ๋จํ ๊ตฌํ์ ๋๋ ํด๋น API๋ฅผ ํตํด ๊ตฌ์ถํ ์ ์์ง๋ง, ์ธ๋ถ์ ์ธ ์กฐ์์ด ํ์ํ ๊ฒฝ์ฐ UIKit์์ ์ ๊ณตํ๋ AVPlayer๋ฅผ ์ง์ ์ปค์คํ ํ๊ฒ ๊ตฌ์ฑํด์ผ ๋ฉ๋๋ค๐ฅน ๊ทธ๋ผ ์ด๋ฒ ํฌ์คํ ์์๋ ํฐ ์ค๋ช ๋ณด๋ค๋ ์ฝ๋๋ก ๊ฐ์ด ๋ณด๊ฒ ์ต๋๋ค! ์์ฐธ! ์ฐ์ ํด๋น ํ๋ก์ ํธ ํ๊ฒ์์ ์๋ ์ค์ ์ ์ผ์ค์ผํฉ๋๋ค. ๐๐ป Signing & Capabilites > Background Modes > Audio, Airplay,..
-
UIKit๊ณผ SwiftUI์์ ํ ์คํธ์ ์๊ฐ&ํ๊ฐ ์กฐ์ ํ๊ธฐSwiftUI 2023. 2. 20. 20:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ UIKit๊ณผ SwiftUI์์ ํ ์คํธ์ ์๊ฐ ๋ฐ ํ๊ฐ์ ์ค์ ํ๋ ๊ตฌํ์ ํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ์๊ฐ๊ณผ ํ๊ฐ์ด ๋ญ๊น์? ์๊ฐ์ ๊ธ์์ ๊ธ์ ์ฌ์ด ๊ฐ๊ฒฉ์ ๋ปํฉ๋๋ค. ์ฆ Letter Spacing์ด๋ผ๊ณ ๋ ๋ง์ด ํ๊ธฐํ๋ฉฐ ํผ๊ทธ๋ง๋ ์ ํ๋ฆฐ์์ ํด๋น ์์ฑ ๊ฐ์ ์ด๋ฆ๋ ๋ณดํต Letter Spacing์ผ๋ก ํ๊ธฐ๋ฉ๋๋ค. ํ๊ฐ์ ์ค๋์ด๋ผ๊ณ ๋ ํ๋ฉฐ ๊ธ์ํ ์ฌ์ด ๊ฐ๊ฒฉ์ ๋ปํฉ๋๋ค. ํ์ดํฌ๊ทธ๋ํผ์์ ์ธ์ ํ ์ค ์ฌ์ด์ ๊ณต๊ฐ์ ์๋ฏธํ๋ฉฐ ๋ณดํต Line Spacing์ด๋ผ๊ณ ๋ช ์นญํฉ๋๋ค. ์ฐ๋ฆฌ๋ Text, TextField, TextView๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ฉด์ ์ด ํ ์คํธ ๊ฐ ์๊ฐ๊ณผ ํ๊ฐ์ ์กฐ์ ํ ์ผ์ด ๋ง์์ง๋๋ค. ํด๋น ์์ฑ์ ์กฐ์ ํ์ฌ ๋ณด๋ค ๋ ๋ณด๊ธฐ ์ข์ UI๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉ์๋ค์๊ฒ ์ฝ๊ฒ ์ธ์๋๋๋ก ํด์ค ์..
-
UITextView๋ฅผ SwiftUI์์ ์ปค์คํ ํ๊ฒ ์ฌ์ฉํ๊ธฐSwiftUI 2023. 2. 17. 14:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ํ ์คํธ๋ทฐ ๊ตฌํ์ ์ํด ๊ธฐ๋ณธ ์ ๊ณตํ๋ TextEditor๋ฅผ ์ฌ์ฉํ์ง ์๊ณ UIKit ์ธ์์ UITextView๋ฅผ ๊ฐ์ ธ์ ์ ๋ง๋๋ก ํ ์คํธ๋ทฐ๋ฅผ ์ปค์คํ ํ๊ฒ ๊ตฌํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค๐ ์ TextEditor ์์ฐ์ฃ !? ์ฐ์ ํ์ฌ ๊ธฐ์ค iOS 16์์ TextEditor๊ฐ ๋ถ๋ช ์ธ๋งํด์ง๊ฒ์ ์ฌ์ค์ ๋๋ค. ๋ค๋ง ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ฒํ ์ฌ๋ฌ๋ถ๋ค์ด ๋ ๋ง์๊ฒ ๊ฐ๊ณ ์ ์ญ์ ๊ทธ๋ ์ต๋๋ค๐ญ 14,15 ๋ฒ์ ๊ธฐ์ค์ผ๋ก ๊ฐ๋จํ ์ง์ด๋ณด๋ฉด ์ฐ์ SwiftUI์ ๊ธฐ๋ณธ ์ ๊ณต๋๋ TextEditor์์๋ ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ placeholder๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ์ง ์์ ํ์ํ๋ฉด overlay๋ก ์ปจํธ๋กค ํด์ค์ผํฉ๋๋ค. ๋ ํ ์คํธ๊ฐ ์ ๋ ฅ๋๋ ์นธ์ Inset์ ์กฐ์ ํ ๋..