뷰의 각 모서리를 라운딩 처리하는 방법
import SwiftUI
struct ExampleCornerRadiusView: View {
var body: some View {
Color.red
.frame(width: 150, height: 150)
.clipShape(RoundedRectangle(cornerRadius: 12))
}
}
import SwiftUI
struct CornerRadiusShape: Shape {
var radius = CGFloat.infinity
var corners = UIRectCorner.allCorners
func path(in rect: CGRect) -> Path {
let path = UIBezierPath(roundedRect: rect, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
return Path(path.cgPath)
}
}
struct CornerRadiusStyle: ViewModifier {
var radius: CGFloat
var corners: UIRectCorner
func body(content: Content) -> some View {
content
.clipShape(CornerRadiusShape(radius: radius, corners: corners))
}
}
extension View {
func cornerRadius(radius: CGFloat, corners: UIRectCorner) -> some View {
self.modifier(CornerRadiusStyle(radius: radius, corners: corners))
}
}
import SwiftUI
struct ExampleCornerRadiusView: View {
var body: some View {
Color.red
.frame(width: 150, height: 150)
//사용
.cornerRadius(radius: 12, corners: [.topLeft, .bottomRight])
}
}