2014-12-04 94 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上打勾。