圆形图像视图 iOS 8 / Xcode 6
Posted
技术标签:
【中文标题】圆形图像视图 iOS 8 / Xcode 6【英文标题】:Circular ImageView iOS 8 / Xcode 6 【发布时间】:2014-12-04 05:57:57 【问题描述】:我已经四处寻找,但似乎仍然无法做到这一点。我正在尝试在 ios 8 中实现圆形图像。在 Xcode 6 之前,我认为答案应该是 imageView.layer.cornerRadius
属性。我已经尝试过了,但现在在 Xcode 6 和 iOS 8 中使用自动布局,我认为这是导致问题的原因,它似乎无法正常工作。形状不是圆形,而是一些看起来像眼睛的形状或变形的椭圆形,它从来都不是完美的圆形。是否还有其他方法可以通过 Autolayout 实现这一目标?
【问题讨论】:
圆角半径应该是宽度/高度的一半才能成为圆形。 对尺寸应用约束,即imageView的宽度和高度,并设置cornerRadius= width/2。如果 width=height,imageView 将是一个圆圈。 ***.com/a/27222863/3767017(by图层属性你也可以改变几何形状)和***.com/a/25616952/3767017并小心你的imageView框架。 @user3796045:如果对您有用,请接受点赞的回答。 你试过什么? mattgemmell.com/what-have-you-tried 在我看来你只是没有设置高度限制。 【参考方案1】:检查 UIImageView 的高度和宽度。应该是一样的。如果不是他们成功了。之后
imageView.layer.cornerRadius = imageView.frame.size.width/2;
或
imageView.layer.cornerRadius = imageView.frame.size.height/2;
两条线都适合你。
【讨论】:
你也应该将 clipsToBounds 设置为 true。【参考方案2】:我正在使用 Xcode6 并使用 ios8 进行检查。
您的 Imageview 的 height
和 width
应该相同。
下面的代码对我来说很好。
yourImageView.layer.cornerRadius = img.frame.size.height /2;
yourImageView.layer.masksToBounds = YES;
yourImageView.layer.borderWidth = 0.1;
希望它也对你有用。
【讨论】:
【参考方案3】:试试这个代码,圆角半径应该是提供的照片视图的宽度或高度的一半,并且它必须是方形的。
所以代码是这样的
[self.photoView.layer setCornerRadius:CGRectGetHeight(self.photoView.frame)/2];
[self.photoView.layer setMasksToBounds:YES];
在 ios 6 及更高版本(包括 ios 8)上也能正常工作。
【讨论】:
【参考方案4】:实现以下代码将解决您的问题。
self.imageView.layer.cornerRadius = self.imageView.frame.size.width / 2;
self.imageView.clipsToBounds = YES;
如果是AutoLayout
的问题。清除约束,设置间距并勾选Aspect ratio
。
【讨论】:
以上是关于圆形图像视图 iOS 8 / Xcode 6的主要内容,如果未能解决你的问题,请参考以下文章