【发布时间】:2017-05-29 04:52:18
【问题描述】:
所以我通过扩展将渐变应用到 UIButton:
extension UIButton {
func addGradient(withColors colors:[CGColor]) {
let layer_: CAGradientLayer = CAGradientLayer()
layer_.frame = self.bounds
layer_.colors = colors
layer_.shouldRasterize = true
layer_.rasterizationScale = UIScreen.main.scale
self.layer.insertSublayer(layer_, at: 0)
}
}
通过以下方式将其应用于 UIButton:
@IBOutlet weak var startButton: UIButton! {
didSet {
startButton.backgroundColor = ECConstants.GenericColors.buttonOrange
startButton.setTitleColor(UIColor.white, for: .normal)
startButton.addGradient(withColors: [UIColor.white.withAlphaComponent(0.3).cgColor, UIColor.clear.cgColor])
}
}
不幸的是,在 iPad Pro 12.9 英寸 (iOS 10.1) 上,它似乎缩短了按钮的宽度。我也尝试在 viewDidLoad 中应用它,但无济于事。
所以我的问题是如何让渐变一直穿过?或者哪里是设置渐变的最佳位置?
【问题讨论】:
-
尝试在点击期间将按钮的宽度记录到控制台。这可以确认按钮与您期望的一样宽(看起来像问题)。
标签: ios swift ipad uibutton cagradientlayer