1

下面给出的类工作正常

@IBDesignable class iButton : UIButton {

@IBInspectable var cornerRadius : CGFloat = 0.0{
    didSet{
        layer.cornerRadius = cornerRadius
    }
}}

但问题是,当我在 Attribute Inspector 中为尺寸为(宽度:70,高度 70)的按钮设置cornerRadius 值 35 时。我在情节提要上得到了圆形按钮,但是在模拟器上运行它时,它不是圆形的,而是圆角矩形。

我在 xCode 上的设计视图是 iPhone-SE,并在 iPhone-7-plus 模拟器上进行了模拟。

我还通过在 Size Inspector 上设置高度和宽度来启用自动调整大小。

检查此图像以了解 xcode 设计和模拟设备屏幕

自动调整大小的大小检查器

据我所知,角半径应该是宽度的一半。当按钮通过自动调整大小调整大小时,为什么不调整角半径。我怎样才能解决这个问题?

提前致谢。

4

2 回答 2

2
import UIKit

@IBDesignable 
class RoundedCornerButton: UIButton {

    override func drawRect(rect: CGRect) {
        self.clipsToBounds = true
    }

    @IBInspectable var cornerRadius: CGFloat = 0 {
        didSet {
            self.layer.cornerRadius = cornerRadius
        }
    }
}

或者您可以查看此链接此链接以获取更多信息

https://www.youtube.com/watch?v=JQ5i2YKwvJ8

于 2017-07-20T12:02:07.300 回答
-2

谢谢你,我得到了答案。

我们还需要缩放cornerRadius。

layer.cornerRadius = cornerRadius * (UIScreen.main.bounds.width/320.0) //320.0 be my width of the screen that i designed on storyboard
于 2017-07-20T07:06:55.323 回答