Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

SwiftUI107

11. [SwiftUI] init() SwiftUI에서는 Structure를 주로 사용하다 보니, 생성자에 대한 고려를 크게 하지 않고 있었다. 구조체에서는 memberwise initializer가 자동으로 제공되기 때문이다. 그런데 재사용성을 고려하고, 효율적인 코딩을 위해서는 생성자의 개념이 필요한 순간이 있을 수 있다. ex. 거의 같은 뷰인데 속성만 조금씩 바뀌는 경우 열거형과 생성자를 이용해 좀 더 효율적으로 비슷한 뷰를 그리는 방식에 대해 알아보자. // // Created by Toughie on 2023/04/12. // import SwiftUI struct initializer: View { //프로퍼티에 타입만 지정 let backgroundColor: Color let count: Int let title: Strin.. 2023. 4. 12.
10. [SwiftUI] Spacer() 같은 사이즈로 계속 resize 되는 것을 알 수 있다! Spacer는 minLength 파라미터가 있다!(옵셔널) Spcaer(minLength: nil) == Spacer() minLength를 nil로 두어도 어느정도의 최소길이는 default로 있음. 만약 스택에 수평패딩을 많이 주면 중앙으로 쪼그라 드는데 붉은 정사각형의 스페이서만 최소 길이를 정해준 케이스이다.(혼자만 긴 것을 알 수 있다.) (오른쪽 사진은 minLength: 0인 케이스_완전 붙게 할 수도 있다.) 종료 및 설정 버튼을 만드는 시나리오 버튼 사이에 스페이서를 넣어 HStack로 묶고, 이 HStack과 스페이서를 VStack으로 묶어주면 된다. // Created by Toughie on 2023/04/04. // impo.. 2023. 4. 5.
9. [SwiftUI] .padding() 패딩 고정적인 프레임을 정하는 방법 외에, 패딩을 활용하는 방법도 있다. (고정 된 프레임과 다르게, 텍스트가 길어지면 패딩은 다이나믹하게 적용됨.) 패딩에 패딩에 패딩 // Created by Toughie on 2023/04/04. // import SwiftUI struct padding_spacer: View { var body: some View { VStack(alignment: .leading) { Text("Hello, Toughie!") .font(.largeTitle) .fontWeight(.semibold) .padding(.bottom,20) Text("Hi, SwiftUI! I love coding.Hi, SwiftUI! I love coding.Hi, SwiftUI! I love co.. 2023. 4. 4.
8. [SwiftUI] VStack, HStack, ZStack 스택 VStack(수직 스택), HStack(수평 스택), ZStack(앞/뒤 스택) VStack (H,Z도 유사함) VStack(alignment: HorizontalAlignment, spacing: CGFloat?, content: () -> View) // spacing default값은 8, nil 할당 or 지우면 간격 8 적용 // content는 void -> View 함수타입. /* 클로저 문법 최적화를 통해 아래와 같은 형태로 많이 쓰는 것임. VStack { } */ HStack 예시 ZStack 예시 ( .overlay를 떠올려 보자) Stack in Stack in Stack in Stack ... 스택 안에 스택을 쌓으며 무궁무진한 조합을 만들 수 있다. // Created by To.. 2023. 4. 3.
7. [SwiftUI] .background() & .overlay() 백그라운드 & 오버레이 .background() 백그라운드 색 변경, Shape 활용, 프레임 활용 등 조합은 무궁무진하다. // Created by Toughie on 2023/04/03. // import SwiftUI struct Background_Overlay: View { var body: some View { Text("Hello, World!") .background( Circle() .fill(LinearGradient(colors: [Color.red, Color.blue], startPoint: .leading, endPoint: .trailing)) .frame(width: 100, height: 100, alignment: .center) ) .background( Circle() .fill(Linear.. 2023. 4. 3.
6. [SwiftUI] .frame() 프레임 화면 위의 모든 객체들은 default 프레임(직사각형 영역)이 있음 alignment -> 프레임 내에서 객체를 어떻게 정렬할 것인가? 아래 결과물과 코드를 보면 프레임이 무엇인지 더 잘 알 수 있을 것이다. (프레임 프레임 프레임 프레임 프레임...) 이전 프레임들을 마지막 프레임이 감싸는 형태임 (마지막이 푸른 프레임이니, 해당 프레임의 alignment를 .top으로 해주면 내부에 있는 프레임들이 모두 top으로 정렬됨 (정확히는 노란 프레임이 정렬된 것인데, 노란 프레임 안에 핑크, 보라, 오렌지..그리고 Text고유 프레임(초록색)이 모두 있으니..) 약간 현대미술 같은.. ㅋㅋㅋ 사실 이렇게 프레임마다 색을 설정해주는 식으로 하지는 않겠지만.. 프레임의 영역을 확인하기 위해서 백그라운드 컬러.. 2023. 4. 3.