2017-09-21 3 views
0

IOSの - 。scaleaspectfit UIImageViewのイメージ上のレイアウトUIImageViewのサブビュー

UITableView cell

(のtableViewのセルは、以下に示されている)私は、各セルで同じ景色をUIStackView(異なるコンテンツのみ)でのUITableViewを有しますビューは上記のUIImageViewとUILabelで構成されています。 UIImageViewのコンテンツは、維持率のために.scaleAspectFitに設定されています。現在の画像と完全に重なり合っているimageViewに新しい画像レイヤー(サブビュー)を追加する際に問題がありますが、画像のアンカーではなくUIImageViewのアンカーしか知りませんので、autolayoutで画像に正しくフィットできません。存在しない)。

PS:幅と高さを設定するのにimageview.image.size.widthを使用しようとしましたが、それも役に立たないです。自動レイアウトを使用してサブビューを追加する

現在のコード:

func addStripe(){ 
     let stripeLayer = UIImageView(image: #imageLiteral(resourceName: "book_new")) 
     imageView.addSubview(stripeLayer) 

     stripeLayer.contentMode = .scaleToFill 
     stripeLayer.translatesAutoresizingMaskIntoConstraints = false 

     stripeLayer.topAnchor.constraint(equalTo: imageView.topAnchor).isActive = true 
     stripeLayer.leadingAnchor.constraint(equalTo: imageView.centerXAnchor).isActive = true 
     stripeLayer.trailingAnchor.constraint(equalTo: imageView.trailingAnchor).isActive = true 

Aaaand addStripe機能(間違った)

And there is a result

の結果があり、あなたの時間をありがとうみんなを!

+1

は、[この](https://stackoverflow.com/questions/6278876/how-to-know-the-image-size-after-applying-aspectを見てください。 - イメージのイメージに合わせて/ 43114960#43114960)。これは結果としてイメージのサイズをどのように取得するかを示します。ストライプを正しく演奏するのは簡単です。 –

+0

@ReinhardMännerそれは完璧に動作します!解決策としてマークするため、コメントとして回答を追加してください。どうもありがとうございました。 – prone666

答えて

0

が私を助け、それが動作する手助けを願ってい

let stripeLayer = UIImageView(frame: imageView.frame) 
stripeLayer.image = #imageLiteral(resourceName: "book_new") 
imageView.addSubview(stripeLayer.image) 

:あなたはこのようUIImageViewのinitメソッドでこれを行うことができます。この一行私の問題を解決

let sizeInView = AVMakeRect(aspectRatio: imgViewFake.image.size, insideRect: imgViewFake.bounds).size 
1

stripeLayerのフレームをimageViewに設定する必要があります。私はそれはあなたがReinhardMannerさんのコメント@

+0

UIImageはビューではないので、サブビューとして画像を追加することはできません:) – prone666

+0

@ prone666しかしUIImageViewではなくUIImageViewを使用しました。 –

+0

もちろん、コードスニペットの3行目で、 'stripeLayer.image'を追加してください。 – prone666

関連する問題