我不知道如何設置按鈕上的背景漸變(不使背景漸變成爲圖像)。這與Android非常不同。在Swift中設置背景漸變
這裏有一個I類必須定義一個可回收梯度方案:
import UIKit
extension CAGradientLayer {
func backgroundGradientColor() -> CAGradientLayer {
let topColor = UIColor(red: (0/255.0), green: (153/255.0), blue:(51/255.0), alpha: 1)
let bottomColor = UIColor(red: (0/255.0), green: (153/255.0), blue:(255/255.0), alpha: 1)
let gradientColors: [CGColor] = [topColor.CGColor, bottomColor.CGColor]
let gradientLocations: [Float] = [0.0, 1.0]
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.colors = gradientColors
gradientLayer.locations = gradientLocations
return gradientLayer
}
}
我可以用它來設置我的整個觀點有以下背景:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let background = CAGradientLayer().backgroundGradientColor()
background.frame = self.view.bounds
self.view.layer.insertSublayer(background, atIndex: 0)
}
//...
}
但我怎麼能訪問按鈕的視圖並插入子圖層或類似的東西?我搜索了幾個小時,找不到任何有用的東西。我很迷茫。
我不同意最後一句話。雖然按鈕是視圖,但按鈕背景與視圖背景不同。按鈕背景可以根據按鈕狀態而改變。當添加漸變作爲圖層時,我們會失去該效果。理想的解決方案是將漸變圖層捕獲到圖像中,並將圖像設置爲按鈕背景圖像。 另一個問題是,當按鈕框改變時,即從'layoutSubviews',層邊界應該被更新。 – Sulthan