swiftUI
-
SwiftUI๋ก ๋์ ๋ทฐ ๋ ์ด์์ ๊ตฌ์ฑํ๊ธฐSwiftUI 2024. 1. 18. 18:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก ๋์ ๋ทฐ ๋ ์ด์์์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํด๋ณผ๊น ํฉ๋๋ค ๐๐ป ๋ณธ๊ฒฉ์ ์ผ๋ก ์์๋ณด๊ธฐ์ ์์ ์ด๋ค๊ฑธ ํด๋ณด๊ณ ์ถ์์ง ํ๋ฒ ์คํฌํ๊ณ ๊ฐ๊ป์! ์๋ฐ ๋ทฐ๋ฅผ ๊ตฌ์ฑํด๋ณด๋ ค ํ๊ฑฐ๋ ์! ๐ ์ธ๋ป๋ณด๊ธฐ์๋ ๊ฐ๋จํด๋ณด์ด๋, ์ธ๋ถ ์กฐ๊ฑด๋ค์ด ์์ด์. 1๏ธโฃ ํด๋น ์นฉ์ค(๋ฑ์ง)์ ๋ค์ด๊ฐ Text์ ๊ธธ์ด๋งํผ ์นฉ์ค๊ฐ ๋ค ๋ ธ์ถ๋์ด์ผํจ 2๏ธโฃ ํ๋ฉด์ ๋ฒ์ด๋๊ฑฐ๋ ์งค๋ฆฌ๋ฉด ์๋จ 3๏ธโฃ Text์ ๊ธธ์ด๊ฐ ๊ธธ์ด์ ๋ฐฐ์นํ ์ ์์ผ๋ฉด ๋ค์ ํ์ผ๋ก ์ด๋ํ์ฌ ๋ฐฐ์น 4๏ธโฃ ์คํฌ๋กค ์์ด ํ๋ฉด์ ๋ชจ๋ ๋ ธ์ถํด์ผํจ ์ด๋ฐ Text ๊ธธ์ด์ ๋ฐ๋ผ ์ ๋์ ์ผ๋ก ์นฉ์ค ๋ทฐ๋ฅผ ๋ฐฐ์นํ๋ ๊ทธ๋ฐ ๊ตฌํ์ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ์ฌ๋ฌ๋ถ๋ค์ด๋ผ๋ฉด ์ด ๋ทฐ๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ์ค๊ฒ ๊ฐ์ผ์ ๊ฐ์? ๐ค ์... ๊ทธ๋ฅ LazyVGrid ์ ์ ํ ์ ์ฐ๋ฉด ๋..
-
SwiftUI์์ shadow์ blur ์ฌ์ฉํ๊ธฐSwiftUI 2024. 1. 8. 19:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์์ฃผ ์ฌ์ฉํ๊ณ ์์๋๋ฐ ํ๋ฒ๋ ๊ธ๋ก ์ ๋ฆฌํด๋ณด์ง ์์๋ shadow์ blur ๋ชจ๋ํ์ด์ด์ ๋ํด ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฃผ์ โ ๏ธ ๋ด์ฉ ๋ค์ ์งง์! ๊ณต์๋ฌธ์๋ค์ ๊ธฐ๋ฐ์ผ๋ก ์์๋ณผ๊ฑฐ์์! ๊ทธ๋ผ shadow๋ถํฐ ๊ฐ์์ฃ ๐ shadow SwiftUI์์ shadow ๋ชจ๋ํ์ด์ด๋ ๋ทฐ์ ๊ทธ๋ฆผ์๋ฅผ ์ถ๊ฐํด์ค๋๋ค. ์กฐ๊ธ ๋ ๋ทฐ๊ฐ ์ ์ฒด์ ์ผ๋ก ๋ณด์ผ ์ ์๊ธฐ์ ์ ๋ ๋ค๋ฅธ ๋ทฐ๋ค๊ณผ ์กฐ๊ธ ์์ญ์ ๊ตฌ๋ถ๋์ด ๋ณด์ฌ์ค๋ ์์ฃผ ์ฌ์ฉํฉ๋๋ค! SwiftUI๋ฅผ ์ ์ฉํ ์ ์๋ iOS 13.0 ์ด์ ๋ฒ์ ์ด๋ผ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. func shadow( color: Color = Color(.sRGBLinear, white: 0, opacity: 0.33), radius: CGFloat, x: CGFloat ..
-
STT๋ฅผ ์ด์ฉํด ์์ฑ์ ํ ์คํธ๋ก ๋ณํํด๋ณด์ ๐ฃ๏ธSwiftUI 2023. 12. 26. 18:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ iOS์ STT๋ฅผ ์ด์ฉํ์ฌ ์์ฑ์ ํ ์คํธ๋ก ๋ณํํ๋ ํ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์์๋ STT๊ฐ ๋ฌด์์ธ์ง ์์๋ณด๊ณ ์ด๋ฅผ ํ๋ก์ ํธ์์ ํ์ฉํ์ฌ ์ง์ ์์ฑ์ ํ ์คํธ๋ก ๋ณํํด๋ณด๋ ์ฝ๋๊น์ง ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค! ๊ทธ๋ผ STT๊ฐ ๋์ฒด ๋ญ์ง ์์๋ณผ๊น์? STT(Speech-to-Text)๋? STT๋ Speech-to-Text์ ์ฝ์์ด๋ฉฐ, ์์ฑ์ ํ ์คํธ๋ก ๋ณํํ๋ ๊ธฐ์ ์ ๋งํฉ๋๋ค. ์ฃผ๋ก, ์์ฑ ์ธ์์ด๋ ์์ฑ ๋ณํ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๊ณ ์์ฑ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ํํ๋ก ๋ณํํ๋ ๊ณผ์ ์ ํฌํจํด์! ํํ STT๋ง๊ณ TTS(Text-to-Speech)๋ ๋ง์ด ๋ค์ด๋ณด์ จ์ํ ๋ฐ์! ์ด๋ฆ์์๋ ์ ์ถํ ์ ์๋ฏ์ด ์๋ก ๋ฐ๋์ ๊ฐ๋ ์ ๋๋ค. TTS๋ ํ ์คํธ๋ฅผ ์์ฑ ์ค๋์ค๋ก ๋ณํํ๋๊ฒ์ด๊ณ ..
-
SwiftUI - trim & maskSwiftUI 2023. 12. 21. 19:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ trim๊ณผ mask์ ๋ํด ํ์ตํด๋ณด๋ ค๊ณ ํฉ๋๋ค ๐๐ป ์ฐ์ ์ด ๋๊ฐ์ ๋ชจ๋ํ์ด์ด๋ฅผ ํ์ตํด๋ณด๋ ค๋ ์ด์ ๋ ๊ฐ๋จํ์ด์! ๋ํ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์๋ผ์ ํ์ํ๊ฑฐ๋ ์งํ ์ํฉ์ ๋ฐ๋ผ ๊ฐ๋ ค์ง ๋ถ๋ถ์ ์ ์ง์ ์ผ๋ก ์ฑ์๋๊ฐ๋ ค๋ ๊ตฌํ์ ์์๋ณด๋ค๊ฐ ์ด ๋๊ฐ์ง๋ฅผ ์ฐพ์์ต๋๋ค. trim๊ณผ mask์ ๊ฒฐ๊ณผ๋ทฐ๋ ๋น์ทํด๋ณด์ด์ง๋ง ๋์ํ๋ ๋ฐฉ์์์ ์ฐจ์ด๊ฐ ์๊ธฐ์ ์ฐ์ ๋ ๋ค ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฒ์ธ์ง ์์๋ณด์์ฃ ! ๋จผ์ trim๋ถํฐ ์์๋ณด๊ฒ ์ต๋๋ค. trim(from:to:) trim ๋ฉ์๋๋ ๋ํ์ ํน์ ๋ถ๋ถ์ ์๋ผ๋ด ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํด์ค๋๋ค. ํด๋น ๋ฉ์๋๋ Shape ํ๋กํ ์ฝ์ ์ค์ํ๋ ๋ชจ๋ ๋ํ์ ์ฌ์ฉํ ์ ์์ด์! trim ๋ฉ์๋์ ์ ์๋ ์ด๋ ์ต๋๋ค. func trim( from sta..
-
์๋ ๋ฌธ์ ๊ฒฐํฉ ๋ฐฉ์งํ๊ธฐ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 = ..
-
SwiftUI์์ VoiceOver ์ฌ์ฉํ๊ธฐSwiftUI 2023. 11. 23. 10:25
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ VoiceOver๋ฅผ ์ ์ฉํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ คํฉ๋๋ค ๐๐ป ์ด๋ฒ ํฌ์คํ ์์๋ VoiceOver๊ฐ ๋ฌด์์ด๊ณ SwiftUI์์ ์ด๋ป๊ฒ ์ ์ฉ ๋ฐ ์ฌ์ฉ๋๋์ง ์์๋ณด๊ณ ์ด๋ค ๋ชจ๋ํ์ด์ด๋ค์ด ์ฌ์ฉ๋ ์ ์๋์ง ์์๋ณผ๊ป์ ๐ ๊ทผ๋ฐ ๊ฐ์๊ธฐ VoiceOver๋ฅผ ์? ํค์ค์คํฌ ๋ฐ ๋ชจ๋ฐ์ผ์ฑ ์ฅ์ ์ธ ์ ๊ทผ์ฑ ์ ๊ณ ๋ฅผ ์ํ ์ ๋นํ ํธ์ ์ ๊ณต < ์ ์ฒด < ๋ณด๋์๋ฃ < ๋ณด๋์ ๋ชจ๋ ๊ตญ๋ฏผ์ ๊ฑด๊ฐ, ์ถ์ ์ง ํฅ์์ ์ํด ๋ ธ๋ ฅํ๋ ๋ณด๊ฑด๋ณต์ง๋ถ ํํ์ด์ง์ ๋๋ค. www.mohw.go.kr ์ ๋ถ์์ ํ๋ผ๊ณ ํฉ๋๋คใ ์์ฝํ์๋ฉด ์ด๋ ์ต๋๋ค. ใ๋ชจ๋ฐ์ผ์ฑใ โ ๋ชจ๋ฐ์ผ์ฑ์ ์ค๋งํธํฐ, ์ค๋งํธํจ๋, ์ค๋งํธ์์น ๋ฑ ๋ชจ๋ฐ์ผ๊ธฐ๊ธฐ์ ํ์ฌ๋๋ ์์ฉ์ํํธ์จ์ด๋ก, ํค์ค์คํฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณ ์์ ๋ฐ๋ฅธ ์ ..
-
allowsHitTesting์ ํตํ ๋ทฐ ํฐ์น ์ด๋ฒคํธ ๋๊ธฐ๊ธฐSwiftUI 2023. 10. 13. 10:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ํน์ ๋ทฐ์ ํฐ์น ์ด๋ฒคํธ๋ฅผ ๋ฌด์ํ๊ณ ๋ค์ ๋ทฐ๋ก ๋๊ธฐ๋ ๋ทฐ ๋ชจ๋ํ์ด์ด์ธ allowsHitTesting์ ํ์ตํด๋ณผ๊ป์ ๐๐ป ์ด๋ฒ ํฌ์คํ ์ SwiftUI๋ก ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ํฐ์น ์ด๋ฒคํธ๋ฅผ ๋ทฐ๊ฐ ์์ฌ์์๋ ๋ค๋ฃจ๊ธฐ์ ๋๋ฌด ์ ์ฉํ๋ฐ ์์ฃผ ์ฝ๊ธฐ์ ํฌ์คํ ์ด ๋๊ฒ ๊ฐ๋จํ ์ ์์ต๋๋ค! ๋๋ฌด ์งง์์ ์คํฌ๋กค์ ๋ด๋ฆฌ๊ธฐ๋ ์ ์ ํฌ์คํ ์ด ๋๋ ์ ์์ผ๋ ๋น ๋ฅด๊ฒ ์น๊ณ ๋น ์ ธ๋ด์ ๐ง๐ปโ๏ธ ์ฐ์ ์ธ์ ์ฌ์ฉํ ๊น์? ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณผ๊ป์. struct ContentView: View { @State var isDisplayText: Bool = false var body: some View { VStack { Text("Green") .font(.title) .bold() .for..
-
SwiftUI์์ View์ Size ์ธก์ ํ๊ธฐSwiftUI 2023. 9. 27. 11:04
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ View์ Size๋ฅผ ์ธก์ ํ๋ ์ฝ๋๋ฅผ ๊ณต์ ํด๋ณผ๊นํฉ๋๋ค ๐๐ป ์ด๋จ๋ View Size ๊ฐ์ด ํ์ํ ๊น์? ์ฐ์ , SwiftUI๋ก ๊ตฌํ์ ํ๋ค๋ณด๋ฉด ์ํ๋ ํด๋น ์์ญ์ ๋ทฐ ์ฌ์ด์ฆ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ ํ ์์ ์ ํด์ค์ผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ๋ค์ด, VStack์ผ๋ก ํ์ ๋ทฐ๋ค์ด ์์ผ๋ ํค๋ ์์ญ์ ์ฌ๋ฌ ๋ทฐ๋ค์ ์กฐํฉํ์ฌ ๋ฃ๊ณ ์ด์ ๋ํ ํค๋ ์์ญ์ ๋ทฐ ๋์ด๋ฅผ ๊ฐ์ง๊ณ ์ด๋ ํ ์์ ์ ํด์ค๋๊ฐ ์ข ์ข ๋ฐ์ํฉ๋๋ค. ๋ฒํผ ํญ ๋ฑ ์ธํฐ๋์ ์ด ๋ฐ์ํ์๋ offset์ ์ต์๋จ์ผ๋ก ์ด๋์ํค๋๊ฒ์ด ์๋ ํค๋ ์์ญ ์ดํ๋ถํฐ ๋ ธ์ถ์ํค๊ณ ์ถ๋ค๋ฉด ์ด ํค๋ ์์ญ์ height๋ฅผ ๊ตฌํด y offset์ ๋ณ๊ฒฝํด์ค์ผ ํ ์ ์์ฃ . ๋ฌผ๋ก ์ด๋ด ๊ฒฝ์ฐ ํค๋ ์์ญ์ ๋ด๊ธด ํ์ ๋ทฐ๋ค์ ํ๋ ์์ด ๊ณ ์ ์ ..