Tenho o seguinte código no SwiftUI:
HStack(spacing: 0) {
ForEach(images) { thumbImage in
Image(uiImage: thumbImage.image)
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 50, height: 50)
.clipped()
}
}
.frame(width: 330, alignment: .center)
.clipped()
Vejo a seguinte saída:
Efetivamente, ele está recortando conteúdo tanto à esquerda quanto à direita do HStack
. O que eu quero é que o recorte aconteça apenas no lado direito (à direita), não no lado esquerdo. Qual é a maneira correta de fazer isso?
O
.clipped()
modificador só faz alguma coisa (ou seja, só corta o conteúdo) se o conteúdo ultrapassar o quadro.No seu exemplo, você tem um
HStack
com conteúdo que é bem largo. Você está definindo um.frame
de largura 330 noHStack
e então recortando para esse quadro.Por padrão, o alinhamento para
.frame
é.center
, mas você até definiu o alinhamento central explicitamente. É por isso que o conteúdo no meio está sendo visto e o conteúdo nas laterais está sendo recortado.Se você quiser ver o conteúdo principal, mas cortar o conteúdo final, tente alterar o alinhamento para
.leading
: