我想在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()
}
答案 0 :(得分:1)
如果您的按钮高度宽度是固定的 您可以使用用户定义的运行时属性,这将直接从界面构建器设置角半径
答案 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设置角半径。希望它有所帮助