본문 바로가기

SWIFTUI5

[Swift][SwiftUI] PropertyWrapper의 개념 및 @State, @Binding propertyWrapper의 개념 Swift 5.1 부터 사용할 수 있는 기능 한번 원하는 기능 또는 연산을 하여(wrapped) 하여 보여줄 수 있도록 한다. Class, Struct, Enum 에서 @propertyWrapper 를 붙여 사용한다. propertyWrapper 를 정의하기 위해서는 wrappedValue 라는 프로퍼티를 정의해야 한다. Swift Docs의 예제: 12 이하의 값을 얻어오는 연산을 줄이기 위해 만들 수 있는 TwelveOrLess 라는 propertyWrapper 만드는 예시 @propertyWrapper struct TwelveOrLess { private var number = 0 var wrappedValue: Int { get { return number } .. 2022. 11. 12.
[UIKit] Storyboard 탈출기 (2편) - 스토리보드 대신 SwiftUI의 프리뷰 사용하기 스토리보드를 없애면서 관리해야 할 부분이 코드로 집중돼 편하기도 하지만 뷰를 제대로 만들었는지 확인하려면 매번 시뮬레이터를 돌려봐야 한다는 점은 불편했습니다. 그래서 이번 글에서는 스토리보드 대신 SwiftUI의 프리뷰를 사용하여 매번 시뮬레이터를 돌리지 않고도 뷰를 미리보기하면서 개발하는 방법을 알아보도록 하겠습니다. 주의사항 SwiftUI를 사용해야 하므로 Deployment target이 iOS 13.0 이상은 되어야 합니다. (작성 시 Xcode 버전: 12.5.1) 1. 사용법 결론부터 간단히 말하자면 ViewController() 라는 뷰컨트롤러의 미리보기를 추가하고 싶다면 다음과 같은 코드를 해당 파일이 제일 밑에 추가해주면 됩니다. #if DEBUG import SwiftUI struct .. 2021. 10. 28.
[SwiftUI] Zstack 알아보기 Hstack, Vstack은 UIKit을 활용할 때에도 Horizontal stack, Vertical stack을 사용했던 기억에 비슷하다고 느꼈는데 Zstack은 처음 만났습니다. 그래서 이번 시간에는 Zstack이 무엇인지 알아보려고 합니다. Zstack이란? Zstack의 z는 x, y, z축을 말할 때의 z입니다. 우리가 3차원을 배울 때 z축이 등장하죠. 우리가 보는 화면은 가로, 세로 2차원인데 핸드폰 화면에 놓인 뷰 위에 다른 뷰를 쌓아가는 것을 z축이라고 생각하면 됩니다. 그렇게 생각하면 Zstack은 자식 뷰(child view)들이 화면에 스택처럼 쌓이는 구조를 의미합니다. 그말은 뒤에 나오는 자식 뷰가 그 전의 자식 뷰 위에 쌓이는 structure를 의미합니다. 아래 apple 문.. 2021. 9. 28.
[SwiftUI] modifier(_:) 알아보기 modifier(_:) 란? 예시를 통해 modifier() 메소드가 무엇인지 알아봅시다. 아래 코드에서 텍스트뷰 Text("Hello, world!")에 붙어있는 opacity(), boarder() 이 modifer() method에 해당합니다. struct ContentView: View { var body: some View { Text("Hello, world!") .opacity(0.5) .border(Color.red, width: 2) } }그렇다면 이렇게 뷰에 붙어있는 modifer() 메소드는 어떤 역할을 하느냐? 하면 공식문서에는 이렇게 쓰여있습니다. Applies a modifier to a view and returns a new view. 즉, modifier() 메소드는 뷰 모.. 2021. 9. 16.
[SwiftUI] Object Library가 안 보일 때 해결방법 안녕하세요 저는 요즘 SwiftUI를 배우는 중인데요, 화면 위에 텍스트, 버튼 등을 놓을 때 사용해야 하는 object library가 안 보여 왜 그런지 이것저것 찾아보다가 혼자서 해결책을 찾았습니다. 도움이 될까 싶어 시행착오를 블로그에 간단히 올리려고 합니다. Xcode version : 12.5 문제상황 cmd + shift + L 을 누르면 나타나는 라이브러리에서 Snippet, Image, Color만 나타나고 Object Library가 나타나지 않음 시도해본 방법 Canvas editor가 열려있는지 확인 라이브러리 창은 열려있는 상황에 따라 다른 라이브러리들을 보여준다. 그러므로 Canvas editor가 열려있는 상태에서 시도해야 한다. -> 처음부터 Canvas가 있는 곳에서 시도했.. 2021. 7. 30.