Material
에 대해 알아보도록 합시다.
Material
SwiftU iOS15 이상에서 사용 가능한 background
반투명 흐림 효과 속성이 있다.
바로 Material
타입 이다.
struct Material
Material
을 추가하여 background(_:ignoresSafeAreaEdges:) 수정자와 함께 사용 가능하다.
이 수정자는 어떠한 View
뒤에 나타나는 View
에 반투명 흐림 효과를 적용할 수 있다.
참고로 SwiftUI
에서 blur
라는 수정자가 있는데 이것은 잘못된 사용 방법이다.
import SwiftUI
struct ContentView: View {
var body: some View {
ZStack {
LinearGradient(
colors: [.red, .yellow],
startPoint: .top,
endPoint: .bottom
).ignoresSafeArea()
Text("Hello")
.padding()
.background {
Color.black
.blur(radius: 8, opaque: false)
}
}
}
}
사용 방법
ZStack
레이블 안에 Color
를 사용해서 배경색을 넣어준뒤 확인하는것이 간단하게 확인 가능하다.
ZStack {
Color.teal
Label("Flag", systemImage: "flag.fill")
.padding()
.background(.regularMaterial)
}
Material
은 View
가 아니지만, 이 Material
은 View
와 background
사이에 반투명 레이어를 삽입한다.
Material
이 제공하는 블러 효과는 단순 불투명도 효과가 아니다. 반투명 유리와 유사한 효과를 생성하는 블렌딩을 사용한다.
이 효과를 다이나믹하게 확인하려면 Image
를 배경으로 사용하는 것이다.
ZStack {
Image("chili_peppers")
.resizable()
.aspectRatio(contentMode: .fit)
Label("Flag", systemImage: "flag.fill")
.padding()
.background(.regularMaterial)
}
위에서 사용한 수정자는 regularMaterial
인데, Material
종류는 아래와 같다.
Material 종류
.background(.ultraThinMaterial)
.background(.thinMaterial)
.background(.regularMaterial)
.background(.thickMaterial)
.background(.ultraThickMaterial)
둥근 모서리 효과
만약 cornerRadius
를 사용하려면 두 가지 방법이 있다.
background(_:in:fillStyle:)
func background<S, T>(_ style: S, in shape: T, fillStyle: FillStyle =
FillStyle()) -> some View where S : ShapeStyle, T : InsettableShape
ZStack {
Color.teal
Label("Flag", systemImage: "flag.fill")
.padding()
.background(.regularMaterial, in: RoundedRectangle(cornerRadius: 8))
}
.cornerRadius(radius: CGFloat)
ZStack {
Color.teal
Label("Flag", systemImage: "flag.fill")
.padding()
.background(.regularMaterial)
.cornerRadius(10)
}
읽어주셔서 감사합니다🤟
'SWIFTUI > View layout' 카테고리의 다른 글
SwiftUI : Picker / Picker Style / Section (0) | 2021.05.13 |
---|---|
SwiftUI : Sheet / FullScreenCover (@Environment / presentationMode) (0) | 2021.05.11 |
SwiftUI : Lazy V(H)Grid (4) | 2021.05.08 |
SwiftUI : ScrollView (1) | 2021.05.08 |
SwiftUI : Form (Toggle / disabled / If ) (0) | 2021.03.19 |