SwiftUI
-
SwiftUI에서 VoiceOver 사용하기SwiftUI 2023. 11. 23. 10:25
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI에서 VoiceOver를 적용하고 사용하는 방법에 대해 알아보려합니다 🙋🏻 이번 포스팅에서는 VoiceOver가 무엇이고 SwiftUI에서 어떻게 적용 및 사용되는지 알아보고 어떤 모디파이어들이 사용될 수 있는지 알아볼께요 😀 근데 갑자기 VoiceOver를 왜? 키오스크 및 모바일앱 장애인 접근성 제고를 위한 정당한 편의 제공 < 전체 < 보도자료 < 보도자 모든 국민의 건강, 삶의 질 향상을 위해 노력하는 보건복지부 홈페이지입니다. www.mohw.go.kr 정부에서 하라고 합니다ㅎ 요약하자면 이렇습니다. 【모바일앱】 ○ 모바일앱은 스마트폰, 스마트패드, 스마트워치 등 모바일기기에 탑재되는 응용소프트웨어로, 키오스크와 마찬가지로 고시에 따른 접..
-
BorderlessButtonStyle의 활용SwiftUI 2023. 10. 19. 08:35
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI의 버튼을 다룰때 스타일을 지정할 수 있는데요. 그 중 BorderlessButtonStyle을 알아보고 그 스타일을 어떻게 실전에서 적용하는 경우가 있을지 코드로 구현해보겠습니다 🙋🏻 우선 BorderlessButtonStyle에 대해 공식문서를 통해 알아볼까요? BorderlessButtonStyle 정말 해당 스타일의 의미는 보더 즉, 테두리를 적용하지 않은 버튼 스타일입니다. 기본적으로 Button의 buttonStyle 모디파이어를 통해 버튼 스타일을 제공하고자 할때, static 변수로 .borderless가 있기에 쉽게 사용할 수 있습니다. 이게 끝이에요 설명은 사실! 그럼 디자인적인것 외에 현업에서 이 BorderlessButtonS..
-
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을 변경해줘야 할 수 있죠. 물론 이럴 경우 헤더 영역에 담긴 하위 뷰들의 프레임이 고정적..
-
ScrollTargetBehaviorSwiftUI 2023. 9. 18. 12:29
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI의 ScrollTargetBehavior라는것에 대해 학습해보려 합니다 🙋🏻 우선 이 ScrollTargetBehavior이 어떤건지 알아야겠죠? ScrollTargetBehavior? iOS 17 이상부터 SwiftUI에서 새롭게 지원하는 기능입니다. protocol ScrollTargetBehavior 이렇게 프로토콜로 스크롤 가능한 뷰의 스크롤 동작을 정의하는 유형이에요. 즉 쉽게 말해 우리가 SwiftUI의 ScrollView 컴포넌트를 사용하여 스크롤링을 할때 어떤 스크롤 동작을 해줄지를 정의할 수 있는것이죠. 그럼 이 기능이 SwiftUI에서 어떤 현실적으로의 기능을 해줄 수 있을까요? ScrollTargetBehavior이 없기전 우선..
-
DatePicker & Picker 사용하기SwiftUI 2023. 9. 11. 09:52
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI로 DatePicker와 Picker 컴포넌트를 사용하는 방법에 대해 학습해보겠습니다 🙌 두 컴포넌트 모두 이름에서 알 수 있듯이 어떠한걸 선택하는 용도로 사용되는 컴포넌트겠죠!? 사실 되게 간단한 컴포넌트들이고 사용하기 나름이기에 한번 기본적인 사용법을 익혀볼께요! 그럼 DatePicker부터 바로 가보겠습니다 😁 DatePicker A control for selecting an absolute date DatePicker는 이름에서도 바로 알 수 있듯이 어떤 날짜를 선택해주는 역할을 지닌 컴포넌트입니다. 즉, 쉽게 말해 사용자가 특정 날짜를 선택할 수 있도록 하는 사용자 인터페이스 컴포넌트를 의미하죠. 날짜/시간을 선택할 수 있습니다! str..
-
SwiftUI의 onChange 사용 시 주의할 부분SwiftUI 2023. 9. 5. 09:49
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI의 onChange 사용 구현 시 주의할 부분에 대해 한번 알아보려고 합니다 🙋🏻 우선, SwiftUI에서는 뷰에서의 프로퍼티 변화를 계속 감지하고 있다 변화가 일어나면 구현된 사항을 반영해주는 onChange 메서드가 있습니다. iOS 17 이전에서는 아래 onChange 메서드를 이용하게 되고, onChange(of:perform:) | Apple Developer Documentation Adds an action to perform when the given value changes. developer.apple.com iOS 17 이후부터는 위 onChange 메서드가 deprecated되어 아래 onChange 메서드를 이용해야 합니다...
-
UIApplicationDelegateAdaptorSwiftUI 2023. 8. 28. 11:19
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 UIApplicationDelegateAdaptor에 대해 학습해보겠습니다 🙋🏻 UIApplicationDelegateAdaptor? 우선 UIApplicationDelegateaAdaptor는 SwiftUI에서 UIKit app delegate를 생성하는데 사용하는 프로퍼티 래퍼입니다. @MainActor @propertyWrapper struct UIApplicationDelegateAdaptor where DelegateType : NSObject, DelegateType : UIApplicationDelegate 선언은 위와 같이 되어 있는 프로퍼티 래퍼이죠! SwiftUI의 라이프 사이클을 사용하는 앱에서 앱딜리게이트 콜백을 처리하려면 UIApplic..