2016-04-20 7 views
0

iOS 9.3では正方形のUIImageView(たとえば200x200)があり、cornerRadiusでUIImage(1x1ピクセル)を割り当てようとしましたが、UIImageViewは円になりました。私は問題がレンダリング時にUIImageViewから来たと思います。私は9.3を下回るScaleAspectFillまたはScaleToFill、またはUIImage(2×2)のサイズを変更するcontentMode、またはiOSのバージョンを変更した場合iOS 9.3のUIImageViewはUIImageをどのようにレンダリングするのですか?

photoImageView.image = [UIImage imageNamed:@"iphone.jpeg"]; // 1px height x 1 px width 
photoImageView.contentMode = UIViewContentModeScaleToFill; 
// It can fixed with the below code 
// photoImageView.image = [[UIImage imageNamed:@"iphone.jpeg"] stretchableImageWithLeftCapWidth:2 topCapHeight:2]; 
// photoImageView.contentMode = UIViewContentModeScaleAspectFill; 
photoImageView.layer.cornerRadius = 20.0; 
photoImageView.layer.masksToBounds = YES; 

は、それは私が期待されるように動作します。

http://i.imgur.com/kM36GPW.png

プロジェクト:download the sample projec

赤:実際の結果。 緑色:予想されます。

誰かがその理由を説明できますか?ありがとうございました。

+0

set photoImageView.clipsToBounds = YES; –

答えて

0

はフィットを埋めるか、またはアスペクト

photoImageView.image = [UIImage imageNamed:@"iphone"]; // 1px height x 1 px width 
photoImageView.contentMode = UIViewContentModeScaleToFill; 
photoImageView.layer.cornerRadius = 5.0; 
photoImageView.layer.masksToBounds = YES; 
+0

cornerRadiusを1に設定しても、それでも円が描画されます。私は問題を解決することができますが、私は理由を知らない、私はちょうど問題が起こる理由を知る必要があります。 –

0

セットmasksToBounds = YES

photoImageView.layer.masksToBounds=YES; 

とImageViewのモードアスペクトを設定し、あなたの角の半径値を変更して、それを試してみてください。

+0

Miteshに感謝します。 サークルUIImageViewを取得するつもりはありませんが、サークルがあります。なぜ私がサークルを持っているのか分かりません。 –

+0

別のイメージをUIimageViewに設定して確認してください。 photoImageView.image = [UIImage imageNamed:@ "1.jpg"]; photoImageView.layer.cornerRadius = 20.0; photoImageView.layer.masksToBounds = YES;私はあなたのプロジェクトとその作業をチェックします。これを見てください。プロジェクトでclipstobound = yesを設定すると、imageviewは円になります。 –

+0

こんにちはMitesh、 "1.jpg"の次元は何ですか? iOS 9.3で1x1画像を試しますか? –

関連する問題