UIKit
-
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์ ์กฐ์ ํ ๋..
-
SwiftUI - View๋ฅผ ๊ตฌ์กฐ์ฒด๋ก ์์ฑํ๋ ์ด์SwiftUI 2022. 12. 26. 09:13
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ ๋ฒ ํฌ์คํ ์์๋ SwiftUI์ View ํ๋กํ ์ฝ์ ๋ํด ์์๋ดค์ด์! ํน์ ์๋ณด์ จ๋ค๋ฉด ์๋ ํฌ์คํ ์ ๋จผ์ ๋ณด๊ณ ์ค์๋ฉด ๋ ๋์์ด ๋ฉ๋๋ค๐ https://green1229.tistory.com/314 SwiftUI - View ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ View Protocol์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ SwiftUI๋ก ๋ทฐ๋ฅผ ๋ง๋ค๋ฉด์ ๊ผญ ๋ง๋๋ ๊ฐ๋ ์ด ์์ต๋๋ค. ๋ฐ๋ก View๋ฅผ ์ฑํํ๋๊ฒ์ธ๋ฐ์. ๊ทธ๋ฌ๋๊น ์ด View green1229.tistory.com ์ ๋ฒ ํฌ์คํ ๋ง๋ฏธ์ ์ฐ๋ฆฌ๊ฐ SwiftUI์์ View๋ฅผ ์ ์ํ ๋ ๊ตฌ์กฐ์ฒด๋ก ์ ์ํ๋ ์ด์ ์ ๋ํด ์์๋ณธ๋ค๊ณ ํ์์ต๋๋ค๐ ์ค๋ ๊ทธ๊ฑฐ ํ๋ฒ ์์๋ณด์์ฃ :D ์ค๋ ํฌ์คํ ์ ๊ตฌ์กฐ์ฒด์ ํด๋์ค๊ฐ ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ ..
-
removeArrangedSubview(_:) VS removeFromSuperview()iOS 2022. 11. 14. 17:59
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค๋๋ง์ UIKit์ ๋ค๋ค๋ณผ๊นํด์! ์ฃผ์ ๋ ํ์ ๊ตฌ์ฑ๋ ๋ทฐ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก removeArrangedSubview(_:)์ removeFromSuperview()๊ฐ ์์ต๋๋ค. ์ด ๋ ๋ฉ์๋๋ฅผ ์์๋ณด๋ฉฐ ์ฐจ์ด๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ๊ทธ๋ผ removeArrangedSubview(_:)๋ถํฐ ์์๋ณด์ฃ ! removeArrangedSubview ๋ฐฐ์ด๋ ์์ ๋ทฐ์ ์คํ ๋ฐฐ์ด์์ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ๋ทฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. func removeArrangedSubview(_ view: UIView) ์ ์ธ์ ์์ ๊ฐ์ด ํด๋น ๋ฉ์๋์ ์์ ๋ทฐ๋ก๋ถํฐ ์ ๊ฑฐํ ํ์ ๋ทฐ๋ฅผ ์ธ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. ํด๋น ์์ ๋ทฐ์์๋ ์ด์ ๋์ด์ ์ ๊ฑฐ๋๋ ๋ทฐ์ ์์น ๋ฐ ํฌ๊ธฐ ๋ฑ์ ๊ด๋ฆฌํ์ง ์์์. ๊ทธ๋ ์ง๋ง ์์..
-
SwiftUI-IntrospectLibrary 2022. 9. 15. 09:42
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์ ์ค๋๋ง์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํ์ตํด๋ณด๋ ค๊ณ ๊ฐ์ ธ์์ด์. ๋ง์ ๋ถ๋ค์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋๋ผ๊ณ ์๊ฐ๋ค๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก SwiftUI๋ก ๋ทฐ ๋๋ก์์ ํ๋ฉด์ ๊ฐํน UIKit์ API๋ค์ด ํ์ํ๊ณ ์ฌ์ฉํ๋๊ฒ์ด ๋ ํธํ ๋ ๋ณ๋ UIRepresntable๋ก๋ ๋ณ๋ ์ปค์คํ ๋ทฐ๋ก ์ง์ SwiftUI์์ ๊ธฐ๋ฅ์ ํ๋ค๊ฒ ๊ตฌํํ๊ฑฐ๋ ๊ตฌ์ฑํ์ง ์์๋ ์กฐ๊ธ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ SwiftUI-Introspect ์ ๋๋ค! ์ด๊ฑด ์ฌ์ค ๋ฅํ๊ฒ ๋ณด์ง ์์๋ ๋ ์ ๋๋ก ์ทจํฅ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ณ ์ ๋ํ ์ด์ ๋ ๊ฑฐ์ ์ฌ์ฉ์ ํ์ง ์๊ณ ์ ๋งํ๋ฉด ์ปค์คํ ํ๊ฒ ๋ทฐ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๊ณ ์์ด์. ๊ทธ๋ผ์๋ UIKit๋ง ์ ํ๋ค๊ฐ SwiftUI๋ฅผ ์ฒ์ ์ ํ๋ ๋ถ๋ค๊ป์ UIKit์ ์กฐ๊ธ ํธ๋ฆฌํ๊ฒ Swi..