繁体   English   中英

如何让UIButton成为一个圆圈?

[英]How to make UIButton a circle?

我一直试图让细胞中的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

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

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

尝试这样的事情

 cell.StoryViewButton.layer.masksToBounds = true
 cell.StoryViewButton.layer.cornerRadius = cell.StoryViewButton.frame.width/2

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

希望这会帮助你。

斯威夫特4

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

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

大。

但是,当我在viewDidLoad中应用它时,这对我来说不起作用。 此时, 约束仍然与按钮的大小一起玩,并且角半径应用于它认为是大小的两倍的按钮,从而产生您具有的奇怪形状。 要将正确的值应用于正确的度量,请将代码放在override func viewDidLayoutSubviews()

我知道这可能是我个人过程中更具体的情况,但我相信它会对某人有所帮助。

有工作代码。我测试它。 希望能帮助到你。 我不知道为什么,但我通过改变框架的高度和宽度来检查这里“CGRectMake(50,8,120,120)”框架的高度和宽度以及按钮的高度和宽度应该相同得到完美的圆圈。

 cell.StoryViewButton.setImage(image, forState: .Normal)
 cell.StoryViewButton.frame = CGRectMake(50, 8, 120, 120)
 cell.StoryViewButton.layer.cornerRadius = self.btn.frame.width/2;
 cell.StoryViewButton.layer.masksToBounds = true

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM