Swift删除按钮BottomBorder

时间:2017-11-12 19:30:29

标签: swift uibutton uikit

所以我有按钮,点击时添加一个漂亮的边框,我找不到删除边框的方法,因为我一次只想要一个边框。我已经尝试将宽度设置为0等。

@IBAction func podsButtonClicked(_ sender: UIButton) {
    podsButton.addBottomBorderWithColor(color: greenColor(), width: 3)
}

@IBAction func subscribedButtonClicked(_ sender: UIButton) {
    subscribedButton.addBottomBorderWithColor(color: greenColor(), width: 3)
}

@IBAction func subscribersButtonClicked(_ sender: UIButton) {
    subscribersButton.addBottomBorderWithColor(color: greenColor(), width: 3)
}

在每个按钮中,我想从其他按钮中删除边框。

1 个答案:

答案 0 :(得分:1)

我猜测,

addBottomBorderWithColor是您在项目中添加为UIButton的扩展名的方法。根据它添加底部边框的方式,您必须执行以下操作之一:

如果要将按钮的下边框添加为子视图,则需要创建执行以下操作的方法:

func removeBottomBorder() {
    bottomBorder.removeFromSuperview()
}

相反,如果您要将底部边框添加为子图层,则需要执行以下操作:

func removeBottomBorder() {
    bottomBorder.removeFromSuperlayer()
}

我建议您创建一个管理底部边框的自定义按钮子类,它或多或少类似于此:

class BottomBorderButton: UIButton {
    var bottomBorder: UIView? // If you are using a CALayer, use that instead

    func addBottomBorderWithColor(color: UIColor, width: Int) {
        let bottomBorder = UIView() // If you are using a CALayer, use that instead
        // Use whatever you have already implementeds here
        // ...
        self.bottomBorder = bottomBorder
    }

    func removeBottomBorder() {
        self.bottomBorder?.removeFromSuperview()
        // If you use a CALayer, use the following instead
        // self.bottomBorder?.removeFromSuperlayer()
    }
}

在您的项目中,然后在需要时使用BottomBorderButton而不是UIButton。