2016-09-02 7 views
1

動作しないマスキングUIImageview設定:UIImageViewは、私が持っている

let picture = UIImageView(frame: imageFrame) 
picture.image = UIImage(named: image) 

はそれをここに見ることができます:

は今、私はそれを一定の大きさをマスクしたい、ので、ランダムなサイズのランダムな画像になるので、UIViewを作成しました。

let frame = CGRect(x: 0, y: CGRectGetMaxY(menuLine.frame) + HeightForSize * 0.05, width: view.bounds.width, height: HeightForSize * 0.9) 
let mask = UIView(frame: frame) 
mask.backgroundColor = UIColor.whiteColor() 

しかし、私はそれをマスクしようとすると:私はちょうどそれがこのようになります私のビューにサブビューを追加すると10

picture.maskView = mask 

それはこのようになり、何が間違ってここに起こっていますか?

+0

私はすべてのマスキングないお勧めします。 imageViewのサイズを固定サイズに設定し、次にcontentModeプロパティを使用してイメージの表示方法を調整できます。どのように使用しようとしているのかを推測する 'ScaleAspectFill'をお勧めします。 –

+0

例としていくつかのコードがありますか?私はそれを行う方法を知っていますので、私はそのコードで作業しています – Benja0906

答えて

0

UIImageViewは、おそらくここでのマスクよりも簡単に、あなたの目的を果たすだろうcontentModeを尊重します。すべての画像が収まるように固定サイズにimageViewを設定します。画像が狭すぎる場合は黒いバーが表示されるようにするには、UIViewContentMode.scaleAspectFitを使用します。最もよく見えるものはUIViewContentMode.scaleAspectFillです。あなたが作成したimageViewボックスを塗りつぶすまで画像の縦横比は維持されます。 2つのモードと他のモードで再生し、効果を確認します。

let imageView = UIImageView(image: UIImage(named: "myImage")) 
imageView.frame = CGRect(x: 0, y: 0, width: 100, height: 100) 
imageView.contentMode = .scaleAspectFill 

ここをクリックしてください。

https://developer.apple.com/reference/uikit/uiviewcontentmode