应用渐变时按钮拉伸

时间:2016-07-24 08:07:38

标签: ios swift button gradient

首先,我将约束设置为故事板中的按钮。然后,我在代码中编辑它以使其看起来很好。 当我将渐变功能应用于按钮时,它变得比以前更大。你是怎么解决的?

extension UIView {
    func applyGradient(colours: [UIColor]) -> Void {
        self.applyGradient(colours, locations: nil)
    }

    func applyGradient(colours: [UIColor], locations: [NSNumber]?) -> Void {
        let gradient: CAGradientLayer = CAGradientLayer()
        gradient.frame = self.bounds
        gradient.colors = colours.map { $0.CGColor }
        gradient.locations = locations
        self.layer.insertSublayer(gradient, atIndex: 0)
    }
}

我只是将它应用于一个按钮并且.. Here is the pic...

现在它看起来像这样......渐变界限没有做任何事情It goes way outside frame PLZPLZPLZ尝试帮助我:)我很感谢你的帮助到目前为止

1 个答案:

答案 0 :(得分:0)

self.layer.masksToBounds = true添加到该功能。这意味着您添加的子图层不会在按钮的原始框架之外绘制

编辑: 如果您想要阴影,则需要将self.layer.masksToBounds设置为false,因为它也会剪切阴影。

请尝试gradient.frame = self.layer.bounds吗?