본문 바로가기

Language46

SwiftUI를 이용한 Shape 지정하기 SwiftUI에는 사각형, 원 및 캡슐과 같은 여러 가지 기본 제공 모양이 있으며 필요에 따라 각 모양을 만들고 색상을 지정하고 배치할 수 있다. 기본 코드 import SwiftUI struct ContentView: View { var body: some View { VStack { Circle() .fill(Color.yellow) .frame(width: 100, height: 100) Rectangle() .fill(Color.blue) .frame(width: 100, height: 100) RoundedRectangle(cornerRadius: 20) .fill(Color.green) .frame(width:200, height: 100) Capsule() .fill(Color.black) .. 2022. 12. 9.
SwiftUI를 이용한 뷰를 겹겹이 쌓기 (ZStack) VStack과 HStack은 세로나 가로로 뷰를 쌓을 때 이용한다. 간혹 뷰를 겹쳐서 쌓아야 할 때 ZStack 뷰를 이용해 뷰들을 겹겹이 쌓을 수 있다. 첫 번째에 입력한 내용이 먼저 그려진 다음 후속 뷰가 그 위에 계층화된다. 앱이 실행 되는 동안 어떠한 뷰를 다른 뷰 뒤로 밀거나 탭할 때 특정 뷰를 앞으로 가져올 때 .zIndex() 수정자를 이용한다. 기본 코드 struct ContentView: View { var body: some View { ZStack { Text("1") .background(Color.yellow) .foregroundColor(.red) .zIndex(1) Text("Photo credit: 김테스트") .padding(4) .background(Color.black.. 2022. 12. 8.
SwiftUI를 이용한 그리드 그리기 (LazyVGrid) Grid 뷰는 horizontal Direction 으로 사진을 배열하여 화면을 구성하기 쉽다. 기본 코드 struct ContentView: View { let data = Array(1...1000).map { "목록 \($0)"} let columns = [ GridItem(.adaptive(minimum: 100)) ] var body: some View { ScrollView { LazyVGrid(columns: columns, spacing: 20) { ForEach(data, id: \.self) { i in VStack { Capsule() .fill(Color.yellow) .frame(height: 50) Text(i) .forgroundColor(.secondary) } } } .pa.. 2022. 12. 5.
SwiftUI에서 GeometryProxy 사용하기 GeometryProxy GeometryReader 는 컨테이너 뷰의 한 종류이며, 다른 컨테이너뷰의 ViewBuilder와는 다르게 인자를 하나 받는데 그것이 GeometryProxy 객체다. 실제로 상위 뷰의 정보는 이 객체를 통해 접근이 가능하다. 기본적으로 GeometryProxy 는 size 프로퍼티를 갖고 있다. .frame(in: ) 라는 메소드가 있으며, 서브크립트도 지원한다. GeometryProxy 코드 struct GeometryProxy { var size: CGSize { get } var safeAreaInsets: EdgeInsets { get } func frame(in coordinateSpace: CoordinateSpace) -> CGRect subscrip(anchor.. 2022. 12. 1.

\