UITableViewCell中的圆形按钮

时间:2016-03-09 09:53:00

标签: ios swift uibutton uitableview

我想在UITableViewCell中创建一个圆形按钮。 我在IB中使用autolayout约束。

通常情况下,我会在viewDidLayoutSubviews设置圆角半径,以使按钮保持圆形,尽管autolayout

我还没有找到如何在UITableViewCell中执行此操作。我的按钮是菱形而不是椭圆形! : - (

谢谢!

这是我如何制作一个循环按钮:

extension UIButton {
   func setCircular() {
      layer.cornerRadius = layer.frame.width / 2
   }
}

我在

中这样做
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! MyCellClass
    cell.goodButton.setCircular()
}

4 个答案:

答案 0 :(得分:1)

如果您的按钮高度宽度是固定的  您可以使用用户定义的运行时属性,这将直接从界面构建器设置角半径

参考链接 User Defined Runtime Attributes

答案 1 :(得分:1)

我想你忘了在课堂上添加self.imageView.layer.masksToBounds = true

override func layoutSubviews() {
    super.layoutSubviews()

    self.makeItCircle()
}

func makeItCircle() {
    self.yourbutton.layer.masksToBounds = true 
    self.yourbutton.layer.cornerRadius  = CGFloat(roundf(Float(self.yourbutton.frame.size.width/2.0)))
}

有关其他信息,请参阅this

答案 2 :(得分:0)

这将对您有所帮助:

 goodButton.layer.cornerRadius = goodButton.layer.frame.height / 2
 goodButton.layer.masksToBounds = true

注意:请确保您的按钮具有相同的宽度和高度。

答案 3 :(得分:0)

extension UIView {

@IBInspectable var cornerRadius: CGFloat {
    get {
        return layer.cornerRadius
    }
    set {
        layer.cornerRadius = newValue
        layer.masksToBounds = newValue > 0
    }
}

我在swift中使用此扩展来通过Interface Builder设置角半径。希望它有所帮助