在Swift中将UIView变成圆形

26

我已经尝试在谷歌上搜索我的问题,但似乎无处可以找到解决方案! 基本上,我有一个UIView,一旦用户登录我的应用程序,就会检索用户的Facebook照片。目前它是一个正方形,但我完全不知道如何将UIView变成圆形... 任何帮助都将不胜感激,因为我还在学习! -Alex

这只是将其连接到UIView中..

@IBOutlet var profilePictureView : FBProfilePictureView!

这将视图设置为用户的 Facebook 个人资料照片。

profilePictureView.profileID = user.objectID

在 app delegate.swift 文件中

FBProfilePictureView.self

这就是全部的代码,我将UIView的class设置为FBProfilePictureView。


也可以参考这个网址:https://dev59.com/j17Va4cB1Zd3GeqPMr0j - Wain
在查看其他问题时,请确保它们的答案符合iOS 8的要求再进行实现。 - Steve Ives
2个回答

72

你可以尝试这个

 profilePictureView.layer.cornerRadius = profilePictureView.frame.size.width/2
 profilePictureView.clipsToBounds = true

 profilePictureView.layer.borderColor = UIColor.whiteColor().CGColor
 profilePictureView.layer.borderWidth = 5.0

唯一的问题是,它不是一个图像视图,而只是一个普通的UIView。我正在使用Facebook SDK来检索用户的照片并将其放置在UiView中。 - alexgarbz
仅使用FBProfilePictureView类。 - alexgarbz
它只是出现了错误:"预期声明"和"没有名为frame的成员"。 - alexgarbz
如果您在profilePictureView.profileID = user.objectID之后设置我的代码会发生什么? - rakeshbs
我在storyboard中定义了uiImageView(100x100个点),但是我使用的cornerRadius值(imageView.frame.size.width/2)不适用于所有不同的分辨率。对于iPhone 4S,它看起来像一颗钻石。我错在哪里了? - Claus
显示剩余5条评论

1
尝试将UIBezier路径定义为圆形,然后将其作为剪辑添加到您的视图中:
let circle = UIBezierPath(arcCenter: (CGPoint), radius: (CGFloat), startAngle: 0, endAngle: 2*M_PI)

请再次确认,但我认为arcCenter是在您的父视图坐标系统中。

要将其添加为剪切路径,我认为只需要:(您需要检查文档以获取详细信息):

circle.addClip()

你能帮我解决这个问题吗?或者简单地解释一下吗?我需要帮助学习,但是我找不到任何信息! - alexgarbz
谢谢你的帮助,但我还是不确定在哪里或如何实施它。 - alexgarbz
Alex - 这不是我自己使用过的东西,但这是我开始的地方。我认为你还需要自己的UIView(即UIView的子类),绘制和裁剪将在您的UIView的drawRect函数中实现。 - Steve Ives
谢谢 Steve,我可能会放弃这一部分,直到我学到更多为止。这让我感到非常困惑 :P - alexgarbz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接