반응형

ios/swiftUI 7

SwiftUI - ConfirmationDialog 알아보기, ActionSheet Deprecated

ActionSheet 를 사용하는데 deprecated 되었다고 confirmationDialog를 사용하라고 합니다. 바로 알아봅시다. ConfirmationDialog 가장 기본적인 confirmationDialog 입니다. 첫번째 인자로 titleKey가 들어가고 isPresented 에 바인딩값을 연결해준 뒤 action 클로저 안에 우리가 평소에 쓰는 Button을 쭉 나열하면 됩니다. struct ContentView: View { @State var isPresented = false var body: some View { Button(action: { isPresented = true }) { Text("사진 불러오기") .padding() } .confirmationDialog( "제목"..

ios/swiftUI 2022.07.26

SwiftUI - Preview를 유용하게 사용하는법, previewLayout, 가로모드 Preview

SwiftUI의 Preview는 따로 앱을 빌드하여 시뮬레이터를 실행하지 않고도 코드를 입력하면 바로바로 눈에 보이도록 해주는데요. 이로 인해 더욱 더 생산성 높은 작업을 할 수 있도록 도와줍니다. SwiftUI에서 하나의 ViewController 같은 화면이 아닌 하나의 Component View를 만드는 경우가 많습니다. 하지만 이럴 때도 Preview는 선택한 기기의 화면으로 보입니다. 이런 경우나 여러가지의 형태(가로모드, 세로모드) 등등 을 한눈으로 확인 할 수 있도록 해주는 Preview의 기능에 대해 알아봅시다. 1. PreviewLayout struct ContentView_Previews: PreviewProvider { static var previews: some View { Con..

ios/swiftUI 2022.07.02

SwiftUI - Color 16진수로 표기된 색상 사용하기, hex 색상 사용하기

일반적으로 Assets에 고정된 색상을 등록하고 사용하지만 가끔은 서버에서 받은 hex값을 사용하여 색상을 표현해야 하는 경우가 있다. 역시 일반적인 방법으로 Color를 Extension 하여 새로운 이니셜라이저를 추가해준다. extension Color { init(hex: String) { let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) var int: UInt64 = 0 Scanner(string: hex).scanHexInt64(&int) let a, r, g, b: UInt64 switch hex.count { case 3: // RGB (12-bit) (a, r, g, b) = (255, (int >> 8) ..

ios/swiftUI 2022.07.02

SwiftUI - 탭하여 키보드 숨기기

iOS 의 키보드를 보면 기본적으로 키보드를 내리는 키가 있지만 많은 이용자들이 화면을 탭했을 때 키보드가 내려가는 동작이 익숙하다. 아주 간단하게 SwiftUI에서 구현하는 방법이 있다. 1. Extension 선언 extension UIApplication { func addTapGestureRecognizer() { guard let window = windows.first else { return } let tapGesture = UITapGestureRecognizer(target: window, action: #selector(UIView.endEditing)) tapGesture.requiresExclusiveTouchType = false tapGesture.cancelsTouchesInV..

ios/swiftUI 2022.07.01

SwiftUI에서 UIKit의 Alert 사용하기

1. 왜 SwiftUI의 Alert이 아닌 UIKit의 Alert을 사용하는가? SwiftUI의 Alert 먼저 SwiftUI에서 제공되는 Alert을 사용하기 위한 필요한 요소에 대해 알아보자. 1. alert이 열려있는지 닫혀있는지에 대한 정보를 담은 Bool 타입의 State 변수를 선언한다. 2. View에 alert을 체이닝 형식으로 선언한 후 아까 선언한 State 변수를 연결한다. 3. View의 alert 클로저에 Action처리를 포함한 Alert(View)을 추가한다. struct AView: View { // 1 @State var isShowingAlert = false var body: some View { VStack { Button(action: { isShowingAlert ..

ios/swiftUI 2022.05.10

SwiftUI에서 UIkit, StoryBoard 사용하기

SwiftUI에서 UIkit 사용하기 SwiftUI에서 UIkit를 사용하기 위해서는 UIViewRepresentable을 채택하는 struct를 구현하면 됩니다. UIViewRepresentable을 채택하게 되면 필수로 구현해야 하는 makeUIView와 updateUIView가 있고 UIViewType을 원하는 UIkit의 View로 변경하면 됩니다. UIViewRepresentable // 구현 struct SwiftUIView: UIViewRepresentable { func makeUIView(context: Context) -> UIViewType { let view = UIViewType() return view } func updateUIView(_ view: UIViewType, con..

ios/swiftUI 2022.02.04

SwiftUI - 네비게이션바 색상 동적으로 변경하기

SwiftUI로 개발을 하다보면 네비게이션 바를 커스텀 색상으로 바꾸어야 할 경우가 생깁니다. 예를 들면 특정 색을 가지고있다가 특정 뷰에서만 투명하게 처리한다던지... UINavigationController를 extension한 후 viewDidload()를 override하여 사용할 수 있어요. View에서 편하게 사용하기 위해 View안에 NotificationCenter로 구현하여 사용합니다! extension View { func setNavigationBarColor(color: Color) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) { NotificationCenter.defualt.post( name: NSNotification...

ios/swiftUI 2022.01.06
반응형