275 votes

Comment redimensionner une image avec SwiftUI?

J'ai une grande image dans Assets.xcassets. Comment redimensionner cette image avec SwiftUI pour la rendre petite ?

J'ai essayé de définir le cadre mais cela ne fonctionne pas :

Image(room.thumbnailImage)
    .frame(width: 32.0, height: 32.0)

11voto

Camilo Ortegón Points 817

Pour rendre l'image avec un aspect ratio ajusté et un rognage aux limites, utilisez ce code :

struct ContentView: View {
    var body: some View {
        Image("donuts")
            .resizable()
            .scaledToFill()
            .frame(width: 200, height: 200)
            .border(Color.pink)
            .clipped()
    }
}

Le résultat :

enter image description here

11voto

veD Points 29

Vous devez ajouter le modificateur .resizable, pour pouvoir changer la taille de l'image

Le code ressemblerait alors à ceci:

Image(room.thumbnailImage)
    .resizable()
    .frame(width: 32.0, height: 32.0)

8voto

Fernando Garcia Points 103

Une autre approche consiste à utiliser le modificateur scaleEffect :

Image(room.thumbnailImage)
    .resizable()
    .scaleEffect(0.5)

7voto

Eh bien, c'est semble assez facile en SwiftUI / Suivant la démo qu'ils ont donnée : https://developer.apple.com/videos/play/wwdc2019/204

struct RoomDetail: View {
     let room: Room
     var body: some View {

     Image(room.imageName)
       .resizable()
       .aspectRatio(contentMode: .fit)
 }

J'espère que cela vous aide.

6voto

dinesh sharma Points 399

Si vous voulez utiliser le ratio d'aspect avec redimensionnement, vous pouvez utiliser le code suivant :

Image(landmark.imageName).resizable()
                .frame(width: 56.0, height: 56.0)
                .aspectRatio(CGSize(width:50, height: 50), contentMode: .fit)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X