圆形图像视图 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 的 heightwidth 应该相同。

下面的代码对我来说很好。

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的主要内容,如果未能解决你的问题,请参考以下文章

圆形图像视图最初在 UITableViewCell 中加载为正方形 - Xamarin.iOS

如何在imageview ios7中获取圆形图像

iOS 13 将圆形按钮更改为对角线

带有圆形边框的tableview xcode swift

绘制一个半圆形按钮 iOS

如何制作带有圆形图像和圆形文本的 UI,以及在同一个圆圈上添加评级图标。在 iOS 应用程序中