如何使用创建的自定义IBDesignable类从故事板更改按钮的cornerRadius

时间:2017-07-19 13:01:17

标签: ios xcode swift3 cornerradius ibinspectable

下面给出的课程工作正常

@IBDesignable class iButton : UIButton {

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

但问题是,当我在属性检查器中为大小为(宽度:70,高度70)的按钮设置cornerRadius值35时。我在故事板上得到圆形按钮,但在模拟器上运行它不是圆形而是圆角矩形。

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

我还通过在尺寸检查器上设置高度和宽度来启用自动调整大小。

Check this Image for xcode design and Simulated device Screen

Size Inspector for Auto-Resizing

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

谢谢你我得到了答案。

我们还需要缩放cornerRadius。

layer.cornerRadius = cornerRadius * (UIScreen.main.bounds.width/320.0) //320.0 be my width of the screen that i designed on storyboard