今回はImageの縦横比を維持してリサイズする方法についてです。
aspectRatio(contentMode: .fit)を使おう
- .aspectRatio(contentMode: .fit) は縦横比を維持するViewが持つモディファイア
- 縦か横のどちらかのサイズを決めるともう片方は自動で決まる
横幅を固定させて縦は自動
Image("image_00") .resizable() .aspectRatio(contentMode: .fit) .frame(width:200)
- 縦か横のサイズのどちらかを確定させておく
- frameは必ず最後に追加する
親の高さと画像の高さを同じにする
HStack { Image("image_00") .resizable() .aspectRatio(contentMode: .fit) Image("image_00") .resizable() .aspectRatio(contentMode: .fit) } .frame(height: 100)
- 親ビューに
frame
をつけてサイズを固定する - Imageは自動で親の縦幅とイコールになる
- 縦幅が確定するので横幅はアスペクト比を維持して自動で決まる