ユーザーがモバイルデバイスから画像をアップロードしていますが、これらの画像は縦向きでも横向きでもかまいません。これらの画像はInstagramの投稿と同じように並べて表示されています。私が抱えている最大の問題は、ポートレート画像がコンテナ幅の100%でレンダリングされないことです。それは本当に奇妙です。
これは、私が撮影し、次のコードを使用して視覚化した「ポートレート」写真の例です。
VStack{
AnimatedImage(url: URL(string: self.mediaLink))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: UIScreen.main.bounds.width - 40)
}
.padding(.horizontal, 20)
.frame(width: UIScreen.main.bounds.width - 40)
幅を指定していても、正しくレンダリングされません。UIScreen.main.bounds.width - 40
親と同じ幅である必要がありますVStack
を使用する場合GeometryReader
、私のコードは次のようになります。
GeometryReader{geo in
VStack{
AnimatedImage(url: URL(string: self.mediaLink))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: geo.size.width)
}
}
.frame(width: UIScreen.main.bounds.width)
どちらが悪い!
どんな助けでも大歓迎です!.fill
アスペクト比に使用すると、画像が大きくなりすぎて、カード内のすべてがブロックされます。以下のコードは使用しませんGeometryReader
VStack{
AnimatedImage(url: URL(string: self.mediaLink))
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: UIScreen.main.bounds.width - 40)
}
.frame(width: UIScreen.main.bounds.width - 40)
以下のようにImage( "some_image")だけでコードをテストし、それが機能する(Xcode 12 / iOS 14)ので、問題はAnimatedImage
他のコードにあるか、他のコードにあります。
VStack{
Image("some_image")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: UIScreen.main.bounds.width - 40)
}
.padding(.horizontal, 20)
.frame(width: UIScreen.main.bounds.width - 40)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加