首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用创建的自定义IBDesignable类从序列图像板更改按钮的cornerRadius

如何使用创建的自定义IBDesignable类从序列图像板更改按钮的cornerRadius
EN

Stack Overflow用户
提问于 2017-07-19 21:01:17
回答 2查看 1.5K关注 0票数 1

下面给出的类运行良好

代码语言:javascript
复制
@IBDesignable class iButton : UIButton {

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

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

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

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

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

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-07-20 20:02:07

代码语言:javascript
复制
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

票数 2
EN

Stack Overflow用户

发布于 2017-07-20 15:06:55

谢谢你,我有答案了。

我们还需要扩展cornerRadius。

代码语言:javascript
复制
layer.cornerRadius = cornerRadius * (UIScreen.main.bounds.width/320.0) //320.0 be my width of the screen that i designed on storyboard
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45191451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档