Programación en Swift y SwiftUI para iOS Developers

Como crear vistas con las esquinas redondeadas en SwiftUI

Hay muchas maneras de crear una vista con esquinas redondeadas o rounded corners en SwiftUI. Vamos a ver todas la formas que tenemos de redondear los bordes de una vista y así puedes escoger la que más te guste.

Esquinas redondeadas usando el modifier cornerRadius

Puedes crear esquinas redondeadas usando el modifier cornerRadius.

En el siguiente ejemplo:

Label("WiFi", systemImage: "wifi")
            .padding()
            .background(.blue)
            .foregroundColor(.white)
            .cornerRadius(10)

El resultado sería el siguiente:

Usamos el modifier cornerRadius, disponible desde iOS 13 en adelante para crear unas esquinas redondeadas.

Esquinas Redondeadas usando el modifier clipShape

También podemos hacer unas esquinas redondeadas en SwiftUI usando el modifier clipShape. Este modifier recortará la vista modificada a una forma específica.

SwiftUI tiene muchas formas integradas que pueden producir esquinas redondeadas, por ejemplo, RoundedRectangle y Capsule.

En el siguiente ejemplo creamos esquinas redondeadas con estas formas integradas.

VStack {
            Label("WiFi", systemImage: "wifi")
                .padding()
                .foregroundColor(.white)
                .background(.blue)
                .clipShape(

                    RoundedRectangle(
                        cornerRadius: 10
                    )
                )
            
            Label("WiFi", systemImage: "wifi")
                .padding()
                .foregroundColor(.white)
                .background(.blue)
                .clipShape(

                    Capsule()
                )
            
            Label("WiFi", systemImage: "wifi")
                .padding()
                .foregroundColor(.white)
                .background(.blue)
                .clipShape(

                    RoundedRectangle(
                        cornerRadius: 20,
                        style: .continuous
                    )
                )
        }

En Xcode el resultado sería el siguiente:

Esquinas redondeadas usando el background modifier

En este útlimo método creamos esquinas redondeadas usando el background modifier.

En el siguiente ejemplo creamos una vista de background usando la misma forma que usamos con clipShape y aplicamos su color con el modifier fill.

VStack {
            Label("WiFi", systemImage: "wifi")
                .padding()
                .foregroundColor(.white)
                .background(
                    RoundedRectangle(cornerRadius: 8)

                        .fill(.blue)
                )
            
            Label("WiFi", systemImage: "wifi")
                .padding()
                .foregroundColor(.white)
                .background(
                    Capsule()

                        .fill(.blue)
                )
            
            Label("WiFi", systemImage: "wifi")
                .padding()
                .foregroundColor(.white)
                .background(
                    RoundedRectangle(

                        cornerRadius: 20,
                        style: .continuous
                    )
                    .fill(.blue)
                )
        }

Que en Xcode daría el siguiente resultado:

Desde iOS 15 el modifier background tuvo una actualización que hace que crear esquinas redondeadas sea mucho más fácil. El nuevo background nos permite especificar tanto el color como la forma del fondo.

De manera que no necesitamos especificar el modifier clipShape o fill cuando usamos el modifier background.

En este ejemplo lo podemos ver:

VStack {
    Label("Bookmark", systemImage: "bookmark.fill")
        .padding()
        .foregroundColor(.white)
        .background(
            .pink,
            in: RoundedRectangle(cornerRadius: 8)

        )
    
    Label("Bookmark", systemImage: "bookmark.fill")
        .padding()
        .foregroundColor(.white)
        .background(
            .pink,
            in: Capsule()

        )
    
    Label("Bookmark", systemImage: "bookmark.fill")
        .padding()
        .foregroundColor(.white)
        .background(
            .pink,
            in: RoundedRectangle(

                cornerRadius: 20,
                style: .continuous
            )
        )
}

En Xcode daría el mismo resultado:

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Article

Como usar Size Classes en SwiftUI

Next Article

Como testear y probar tu app en modo oscuro en Xcode

Related Posts