2022/10

πŸ’» 개발/iOS

[iOS / SwiftUI] λ‹€μ–‘ν•œ μƒνƒœ ν”„λ‘œνΌν‹°λ“€μ„ μ•Œμ•„λ³΄μž!

State와 Binding μ§€λ‚œ μ‹œκ°„ @State와 @Binding ν”„λ‘œνΌν‹° λž˜νΌμ— λŒ€ν•΄ ν•™μŠ΅ν–ˆλ‹€. 1. @State @State ν”„λ‘œνΌν‹° 래퍼λ₯Ό μ‚¬μš©ν•΄μ„œ μƒνƒœ ν”„λ‘œνΌν‹°λ₯Ό μž‘μ„±ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œνΌν‹°κ°€ μ„ μ–Έλœ 뷰와 바인딩할 수 있게 λœλ‹€. μ’€ 더 μ‰½κ²Œ μ„€λͺ…ν•˜μžλ©΄ 뷰와 바인딩이 λ˜μ–΄ μžˆλŠ” μƒνƒœν”„λ‘œνΌν‹°μ— 변경이 μΌμ–΄λ‚˜λ©΄ μžλ™μœΌλ‘œ λ·°κ°€ κ°±μ‹ λœλ‹€λŠ” 말이닀. μ½”λ“œλ‘œ 직접 μ‚΄νŽ΄λ³΄μž. μ•„λž˜ μ½”λ“œλŠ” λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ μˆ«μžκ°€ 1μ”© μ¦κ°€ν•˜λ„λ‘ κ΅¬ν˜„ν•œ 앱이닀. struct ContentView: View { @State private var number: Int = 0 var body: some View { VStack { Text("\(self.number)") Button(action: { self.number += 1 }) ..

πŸ’» 개발/iOS

[iOS / SwiftUI] ν‚€λ³΄λ“œκ°€ 사라지지 μ•Šμ•„μš”...😩

SwiftUI Keyboard Dismiss μ–΄μ œ κ΅¬ν˜„ν•œ νŒ€ 과제λ₯Ό λ‹€μ‹œ ν•œ 번 κ΅¬ν˜„ν•˜λ˜ 도쀑에 좔가해보고 싢은 κΈ°λŠ₯이 μžˆμ—ˆλ‹€. μ‚¬μš©μž μž…λ ₯을 μ†Œν”„νŠΈ ν‚€λ³΄λ“œ ν˜Ήμ€ λ²„νŠΌμ„ ν†΅ν•΄μ„œ μž…λ ₯ λ°›λŠ”λ°, μ†Œν”„νŠΈ ν‚€λ³΄λ“œλ‘œ μž…λ ₯ 받은 κ²½μš°μ— Submit을 λˆ„λ₯΄μ§€ μ•Šκ³ , 뷰의 ν΄λ¦­ν•˜λ”λΌλ„ μ†Œν”„νŠΈ ν‚€λ³΄λ“œκ°€ λ‹«νžˆλ„λ‘ κ΅¬ν˜„ν•˜κ³  μ‹Άμ—ˆλ‹€. 1. Focused μš°μ„  이 κΈ°λŠ₯은 SwiftUI 3.0 (iOS 15) 이상뢀터 μ§€μ›ν•œλ‹€. 그런 탓인가 정말 κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•˜λ‹€. var body: some View { @State private var input: String = "" @FocusState private var isFocused: Bool // μƒλž΅... VStack { TextField("PlaceHolder", $i..

πŸ’» 개발/iOS

[iOS / SwiftUI] ForEach둜 Viewλ₯Ό λ¦¬νŽ™ν† λ§ ν•΄λ³ΌκΉŒμš”?

Swift UIμ—μ„œ ForEach둜 View μ—¬λŸ¬ 개 였늘 μŠ€ν„°λ””μ—μ„œ 날씨λ₯Ό λ³΄μ—¬μ£ΌλŠ” νŽ˜μ΄μ§€λ₯Ό Swift UI둜 κ΅¬ν˜„ν•˜λŠ” 과제λ₯Ό μ§„ν–‰ν–ˆλ‹€. HStackκ³Ό VStack을 ν™œμš©ν•΄μ„œ κ΅¬ν˜„ν•˜λŠ” κ³Όμ œμ˜€κ³  κ΅¬ν˜„ κ²°κ³ΌλŠ” μ•„λž˜μ™€ κ°™λ‹€. ν•˜μ§€λ§Œ κ΅¬ν˜„μ„ μ™„λ£Œν•˜κ³  λ³΄λ‹ˆ λŒ€λΆ€λΆ„μ΄ ν•˜λ“œ μ½”λ”©λ˜μ–΄ μžˆμ–΄μ„œ κ²ΉμΉ˜λŠ” μ½”λ“œλ“€μ΄ λ§Žμ•„ 이λ₯Ό μˆ˜μ •ν•΄μ£ΌλŠ” μž‘μ—…μ„ μ§„ν–‰ν–ˆλ‹€. μ•„λž˜ 사진을 보면 빨간색 λ·° μ•ˆμ— μ΄ˆλ‘μƒ‰ 뷰듀이 같은 ν˜•νƒœλ‘œ λ°°μΉ˜λ˜μ–΄ μžˆλŠ” 것을 λ³Ό 수 μžˆλ‹€. κΈ°μ‘΄μ—λŠ” HStack 내뢀에 VStack을 μ—¬λŸ¬ 개 λ°°μΉ˜ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ΅¬ν˜„ν–ˆλŠ”λ°, 이λ₯Ό ForEachλ₯Ό ν™œμš©ν•΄μ„œ VStack을 μž¬μ‚¬μš©ν•˜λŠ” λ°©μ‹μœΌλ‘œ μˆ˜μ •ν–ˆλ‹€. 1. κΈ°μ‘΄ μ½”λ“œ struct DailyHourWeatherView: View { var body: some View { HS..

πŸ’» 개발/iOS

[iOS / Swift] lim ν΄λ‘œμ € -> 0 (ν΄λ‘œμ €, κ·Ήν•œμœΌλ‘œ 쀄여보기)

μ§€λ‚œ μ‹œκ°„μ— 개인적으둜 ν΄λ‘œμ €μ— λŒ€ν•΄μ„œ μ’€ 더 μ•Œμ•„λ΄€λŠ”λ° 였늘 κ°•μ˜μ—μ„œλŠ” ν΄λ‘œμ €μ— λŒ€ν•œ 진도λ₯Ό λ‚˜κ°”λ‹€. 볡슡 μ°¨μ›μ—μ„œ κ°•μ˜λ₯Ό λ“€μœΌλ©΄μ„œ λ‹€μ‹œ ν•œ 번 정리해봀닀. ν΄λ‘œμ € ν΄λ‘œμ €λŠ” κΈ°λŠ₯을 κ°–κ³  μžˆλŠ” μ½”λ“œ 블둝이닀. ν΄λ‘œμ €μ—μ„œλŠ” μƒμˆ˜μ™€ λ³€μˆ˜μ— λŒ€ν•œ μ°Έμ‘°λ₯Ό μΊ‘μ³ν•˜κ³  μ €μž₯ν•  수 있으며 크게 3κ°€μ§€λ‘œ κ΅¬λΆ„ν•œλ‹€. μ „μ—­ ν•¨μˆ˜ 쀑첩 ν•¨μˆ˜ ν΄λ‘œμ € ν‘œν˜„μ‹ 1. μ „μ—­ ν•¨μˆ˜ 첫 번째둜 μ „μ—­ν•¨μˆ˜λŠ” μš°λ¦¬κ°€ ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λ©΄μ„œ μ •μ˜ν•˜κ³  ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λ“€μ΄λ‹€. func ν‚€μ›Œλ“œλ₯Ό 톡해 μ •μ˜ν•œλ‹€. μ „μ—­ν•¨μˆ˜λŠ” 이름을 가지고 있고 μ–΄λ– ν•œ 값도 μΊ‘μ³ν•˜μ§€ μ•ŠλŠ” ν΄λ‘œμ €μ΄λ‹€. func justFunction() -> String { return "KODO" } 2. 쀑첩 ν•¨μˆ˜ 두 번째둜 쀑첩 ν•¨μˆ˜λŠ” 이름을 가지고 λ‘˜λŸ¬μ‹Ό ν•¨μˆ˜λ‘œλΆ€ν„° 값을 캑쳐할 수 μžˆλŠ”..

πŸ’» 개발/iOS

[iOS / Swift] ν΄λ‘œμ €μ™€ ν”„λ‘œνΌν‹°, κ°€λ³κ²Œ μ•Œμ•„λ³΄κΈ°

ν΄λ‘œμ € ν΄λ‘œμ €λŠ” λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ ν‘œν˜„μ΄ κ°€λŠ₯ν•˜λ‹€. ν›„ν–‰ ν΄λ‘œμ € : ν•¨μˆ˜μ˜ λ§ˆμ§€λ§‰ λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬λ˜λŠ” ν΄λ‘œμ €λŠ” ν›„ν–‰ν΄λ‘œμ €λ‘œ, ν•¨μˆ˜ 밖에 κ΅¬ν˜„λ  수 μžˆλ‹€. λ°˜ν™˜ νƒ€μž… μƒλž΅ : μ»΄νŒŒμΌλŸ¬κ°€ ν΄λ‘œμ €μ˜ λ°˜ν™˜ νƒ€μž…μ„ μœ μΆ”ν•  수 μžˆλŠ” 경우, λ°˜ν™˜ νƒ€μž…μ„ μƒλž΅ν•  수 μžˆλ‹€. λ§€κ°œλ³€μˆ˜ 이름 μƒλž΅ : λ§€κ°œλ³€μˆ˜μ˜ 이름이 ν•„μš” μ—†κ³ , μ»΄νŒŒμΌλ‘œκ°€ νƒ€μž…μ„ μœ μΆ”ν•  수 μžˆλŠ” 경우, μΆ•μ•½λœ 전달 인자 ν˜•νƒœλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€. μ•”μ‹œμ  λ°˜ν™˜ : λ°˜ν™˜ 값이 μžˆλŠ” 경우, ν΄λ‘œμ €μ˜ 맨 λ§ˆμ§€λ§‰ μ€„μ—μ„œ return을 μƒλž΅ν•  수 μžˆλ‹€. 1. λ°˜ν™˜ νƒ€μž… μƒλž΅ calculate ν•¨μˆ˜μ˜ method λ§€κ°œλ³€μˆ˜λŠ” Intν˜•μ΄ λ°˜ν™˜λœλ‹€λŠ” 것을 μ»΄νŒŒμΌλŸ¬λ„ μ•Œκ³  μžˆκΈ°μ— ν΄λ‘œμ Έμ—μ„œ λ°˜ν™˜ νƒ€μž…μ„ λͺ…μ‹œν•΄μ£Όμ§€ μ•Šμ•„λ„ λœλ‹€. ν•˜μ§€λ§Œ in ν‚€μ›Œλ“œλŠ” μƒλž΅ν•  수 μ—†λ‹€. let res..

kodo_o
'2022/10 κΈ€ λͺ©λ‘