如何从故事板定制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上设置高度和宽度来启用自动调整大小。

Check this Image for xcode design and Simulated device Screen

Size Inspector for Auto-Resizing

从我了解的圆角半径应为宽度的一半。当按钮的大小是通过自动调整大小来实现的,为什么拐角半径不能调整大小。我怎样才能解决这个问题?

在此先感谢。

+0

给按钮的约束,然后用这个代替'button.layer.cornerRadius = button.frame.width/2' – DatForis

+0

对于圆形按钮,它会有所帮助,但不是所有情况下@DatForis – Hurdler

+0

https://iosdevcenters.blogspot.com/2017/07/how-to-use-ibinspectable-in-swift-30.html –

谢谢你,我得到了答案。

我们还需要缩放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 
     } 
     } 
} 

,或者你可以检查此链接此链接了解更多信息

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