2016-04-20 62 views
0

在iOS 9.3中,我有一個正方形的UIImageView(例如200x200),我嘗試用cornerRadius指定一個UIImage(1x1像素),並且UIImageView成爲一個圓。我認爲這個問題來自於UIImageView的渲染。UIImageView如何在iOS 9.3渲染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; 

如果我改變以下9.3 contentMode到ScaleAspectFill或ScaleToFill,或更改的UIImage(2×2)的大小,或iOS版本,它就像我的預期。

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

Hi Mitesh,「1.jpg」的維度是什麼?你在iOS 9.3上試用1x1圖片嗎? –