如何让UIButton成为一个圆圈?

Kol*_*ley 8 uibutton uiimageview ios swift

我一直试图让细胞中的UIButton成为一个完美的圆圈.不幸的是,圆形是基于背景图像而不是UIButton框架形成的.

我创建圆圈的代码:

cell.StoryViewButton.setImage(image, forState: .Normal)
cell.StoryViewButton.frame = CGRectMake(50, 8, 100, 100)
cell.StoryViewButton.layer.masksToBounds = false
cell.StoryViewButton.layer.cornerRadius = cell.StoryViewButton.frame.width/2
cell.StoryViewButton.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)

输出如下所示: 每个单元格的输出图像

我该怎么做才能得到我想要的完美圆形按钮框架?

Nir*_*v D 15

尝试这样的事情

 cell.StoryViewButton.layer.masksToBounds = true
 cell.StoryViewButton.layer.cornerRadius = cell.StoryViewButton.frame.width/2
Run Code Online (Sandbox Code Playgroud)

如果需要创建一个视图圆,则必须将masksToBounds设置为true,不要设置clipsToBounds

希望这会帮助你.


bea*_*a13 5

雨燕4

您可以将以下函数应用于任何视图,包括按钮。

func makeViewCircular(view: UIView) {
    view.layer.cornerRadius = view.bounds.size.width / 2.0
    view.clipsToBounds = true
}
Run Code Online (Sandbox Code Playgroud)

伟大的。

不过,一开始这对我不起作用,因为我将它应用到了 viewDidLoad 中。此时,约束仍在影响按钮的大小,并且角半径应用于它认为是两倍大小的按钮,从而导致您拥有奇怪的形状。要将正确的值应用于正确的测量,请将代码放在 中override func viewDidLayoutSubviews()

我知道这可能是我个人流程中的一个更具体的案例,但我确信它会对某人有所帮助。