Swift-UIで画像を縮小表示する場合、アスペクト比を保ったまま表示されませんでした。htmlでさえ幅か高さだけ指定すれば、アスペクト比を保ったまま表示してくれるのに… その対策か他記事では見当たらなかったので報告します。 Xcode 14.1 です。急いでいたので幅広く調べてはいません。
対策は、オリジナル画像の縦横サイズを確認して、コード上で縦サイズと横サイズをアスペクト比を保つように計算します。
let bounds = UIScreen.main.bounds
let myWidth = bounds.width // 自画面幅
Image("picture")
.resizable() // Memo: コレ付けないと原寸表示される。
// Orignalサイズ 1664 x 1912 から画面サイズで計算する。
.frame(width: 1664 * myWidth/1912 * 0.35 ,
height: 1912 * myWidth/1912 * 0.35 )
.padding(20)
複数の端末種に対応させるために、スクリーン横幅基準にズーム率を乗じます。
う~ん、本当にこれでいいのか? 面倒すぎる。