如何从故事板定制IBDesignable类更改按钮的cornerRadius创建
问题描述:
下面给出的类是工作的罚款如何从故事板定制IBDesignable类更改按钮的cornerRadius创建
@IBDesignable class iButton : UIButton {
@IBInspectable var cornerRadius : CGFloat = 0.0{
didSet{
layer.cornerRadius = cornerRadius
}
}}
但问题是,当我在属性检查器与大小的按钮设置cornerRadius值35 (宽度70,高度70)。我在故事板上获得了四舍五入的按钮,但在模拟器上运行时,它不是圆形的,而是其圆角矩形。
xCode上的我的设计视图是iPhone-SE,并在iPhone-7 plus模拟器上模拟。
我还通过在Size Inspector上设置高度和宽度来启用自动调整大小。
从我了解的圆角半径应为宽度的一半。当按钮的大小是通过自动调整大小来实现的,为什么拐角半径不能调整大小。我怎样才能解决这个问题?
在此先感谢。
答
谢谢你,我得到了答案。
我们还需要缩放cornerRadius。
layer.cornerRadius = cornerRadius * (UIScreen.main.bounds.width/320.0) //320.0 be my width of the screen that i designed on storyboard
答
import UIKit
@IBDesignable class RoundedCornerButton: UIButton {
override func drawRect(rect: CGRect) {
self.clipsToBounds = true
}
@IBInspectable var cornerRadius: CGFloat = 0 {
didSet {
self.layer.cornerRadius = cornerRadius
}
}
}
,或者你可以检查此链接此链接了解更多信息
给按钮的约束,然后用这个代替'button.layer.cornerRadius = button.frame.width/2' – DatForis
对于圆形按钮,它会有所帮助,但不是所有情况下@DatForis – Hurdler
https://iosdevcenters.blogspot.com/2017/07/how-to-use-ibinspectable-in-swift-30.html –