首先,我对 Storyboard 中的按钮设置约束。然后,我用代码对其进行了编辑,使其看起来不错。 当我将渐变函数应用于按钮时,它会变得比以前更大。你如何解决这个问题?
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 尝试帮助我:) 我很感谢你到目前为止的帮助
最佳答案
将 self.layer.masksToBounds = true
添加到函数中。这意味着您添加的子图层不会绘制在按钮的原始框架之外
编辑: 如果您也想要阴影,则需要将 self.layer.masksToBounds 设置为 false,因为它也会剪切阴影。
尝试gradient.frame = self.layer.bounds
也许可以?
关于ios - 应用渐变时按钮拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549988/