私はあなたが持っている同じ問題への解決策を見つけようと多くの時間を費やし、これは私のために働いた唯一の解決策(スウィフト4、Xcodeの9.2)である:
class ScaledHeightImageView: UIImageView {
override var intrinsicContentSize: CGSize {
if let myImage = self.image {
let myImageWidth = myImage.size.width
let myImageHeight = myImage.size.height
let myViewWidth = self.frame.size.width
let ratio = myViewWidth/myImageWidth
let scaledHeight = myImageHeight * ratio
return CGSize(width: myViewWidth, height: scaledHeight)
}
return CGSize(width: -1.0, height: -1.0)
}
}
は、プロジェクトとセットにクラスを追加します。 UIImageViewをカスタムクラスScaledHeightImageViewに追加します。イメージビューのコンテンツモードはAspect Fitです。
私の問題は、この記事に記載されているものと同じです。私のプロトタイプTableViewCellのContentViewの中には、各エッジに垂直なStackViewがあります。 StackViewの中には、Label、ImageView、および別のラベルがあります。 ImageViewをAspectFitに設定するだけでは十分ではありませんでした。画像は適切なサイズと比率になりますが、ImageViewは画像とラベルの間に余分なスペースを残して実際の画像をラップしませんでした(上の画像のように)。 ImageViewの高さは、サイズ変更された画像の高さではなく元の画像の高さに一致するように見えました(aspectFitがその仕事をした後)。私が見つけた他の解決策は、さまざまな理由で問題を完全には解決しませんでした。私はこれが誰かを助けることを望む。
「アスペクトの塗りつぶし」はどうですか? – Satachito
写真をカットするので、アスペクトフィルはほとんどオプションではありません... –
あなたの理想的な結果がどのようなものかはっきりしていないので、あなたのアプリがしたいものの写真を投稿してください。 @Yohst、 – Yohst