2014-12-04 78 views
5

我搜索了四周,仍然似乎無法得到這個權利。我試圖在iOS 8中實現圓形圖像。在Xcode 6之前,我認爲答案應該是imageView.layer.cornerRadius屬性。我試過這個,但在Xcode 6和iOS 8現在使用自動佈局,我認爲這是造成這個問題,它似乎並沒有正常工作。形狀不是以圓形出現,而是由於某些眼睛看起來形狀或變形的橢圓形,它從來不是一個完美的圓形。 Autolayout還有其他方法可以實現嗎?圓形ImageView iOS 8/Xcode 6

+2

cornerRadius應該是寬度/高度的一半爲一個圓。 – 2014-12-04 06:06:48

+0

在大小上應用約束,即imageView的寬度和高度,並設置cornerRadius = width/2。如果width = height,imageView將是一個圓。 – zaheer 2014-12-04 06:08:08

+0

http://stackoverflow.com/a/27222863/3767017(通過圖層屬性,你也可以改變幾何圖形)和http://stackoverflow.com/a/25616952/3767017,並謹慎對待你的imageView框架。 – 2014-12-04 06:50:20

回答

3

檢查你的UIImageView的高度和寬度。它應該是一樣的。如果不是他們做到的話。這

imageView.layer.cornerRadius = imageView.frame.size.width/2; 

imageView.layer.cornerRadius = imageView.frame.size.height/2; 

後這兩條線爲你工作。

+1

也應該將clipsToBounds設置爲true。 – tounaobun 2015-06-27 11:18:00

2

我正在使用Xcode6並且使用ios8進行檢查。

您的Imageview的heightwidth應該是相同的。

下面的代碼適合我。

yourImageView.layer.cornerRadius = img.frame.size.height /2; 
yourImageView.layer.masksToBounds = YES; 
yourImageView.layer.borderWidth = 0.1; 

希望它也適用於您。

1

試試這個代碼,角半徑應該是提供的照片視圖的寬度或高度的一半,並且它的形狀必須是正方形。

因此,代碼是這樣的

[self.photoView.layer setCornerRadius:CGRectGetHeight(self.photoView.frame)/2]; 
[self.photoView.layer setMasksToBounds:YES]; 

而且工作正常iOS 6以上包括iOS 8

0

實現下面的代碼,將解決你的問題。

self.imageView.layer.cornerRadius = self.imageView.frame.size.width/2; 
self.imageView.clipsToBounds = YES; 

如果是由AutoLayout引起的問題。清除約束條件,放上空格並在Aspect ratio上打勾。