SwiftUIで上部の角を丸くする方法 - コーディング例と解析


  1. コーナーラジウスを指定する方法: SwiftUIのRectangleビューを使用して四角形を作成し、その上部の角を丸くするには、cornerRadius()関数を使用します。以下は、コードの例です。
Rectangle()
    .cornerRadius(10)
    .frame(width: 200, height: 100)

この例では、四角形の上部の角が10ポイントの半径で丸くなります。frame()関数はビューのサイズを指定するためのもので、必要に応じて調整してください。

  1. RoundedCornersモディファイアを使用する方法: SwiftUIでは、カスタムのモディファイアを作成してビューを変形させることができます。以下は、上部の角を丸くするためのRoundedCornersモディファイアの例です。
struct RoundedCorners: ViewModifier {
    let radius: CGFloat
    let corners: UIRectCorner
    func body(content: Content) -> some View {
        content
            .clipShape(RoundedCornersShape(radius: radius, corners: corners))
    }
}
struct RoundedCornersShape: Shape {
    let radius: CGFloat
    let corners: UIRectCorner

    func path(in rect: CGRect) -> Path {
        let path = UIBezierPath(
            roundedRect: rect,
            byRoundingCorners: corners,
            cornerRadii: CGSize(width: radius, height: radius)
        )
        return Path(path.cgPath)
    }
}
extension View {
    func roundedCorners(radius: CGFloat, corners: UIRectCorner) -> some View {
        self.modifier(RoundedCorners(radius: radius, corners: corners))
    }
}
// 使用例
Rectangle()
    .roundedCorners(radius: 20, corners: [.topLeft, .topRight])
    .frame(width: 200, height: 100)

この例では、RoundedCornersモディファイアとRoundedCornersShapeを使用して、上部の左上と右上の角を20ポイントの半径で丸くしています。

以上が、SwiftUIで上部の角を丸くする方法の解析とコーディング例です。必要に応じて、コードをカスタマイズして使用してください。