Swift 4函数按钮属性

时间:2017-08-20 15:24:50

标签: swift xcode

我对Swift很新。我正在尝试创建func

func roundedButton(buttonik: String) {       
    buttonik.clipsToBounds = true
    buttonik.layer.cornerRadius = 10
    buttonik.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner, .layerMaxXMaxYCorner]
}

比叫它

roundedButton(buttonik: "buttonTop")

并拥有此输出

buttonTop.clipsToBounds = true
buttonTop.layer.cornerRadius = 10
buttonTop.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner, .layerMaxXMaxYCorner]

我收到这些错误

Value of type 'String' has no member 'clipsToBounds'
Value of type 'String' has no member 'layer'

谢谢:)

2 个答案:

答案 0 :(得分:0)

看起来您希望buttonik参数为UIButton,但您将其声明为String。由于String不支持您尝试修改的属性,因此您将收到编译错误。如果您将其声明为UIButton,则应编译代码。

答案 1 :(得分:0)

我认为问题在于您将按钮的名称与表示该按钮的对象混淆。将您的日常工作改为:

func roundedButton(button: UIButton) {       
    button.clipsToBounds = true
    button.layer.cornerRadius = 10
    button.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner, .layerMaxXMaxYCorner]
}

然后通过将要应用这些属性的按钮传递给...而不是传递一个字符串来调用它。