所以我通过扩展名将渐变应用于UIButton:
std::string cmdString = "bash -c \".....\"";
通过以下方式将其应用于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)
}
}
不幸的是,在iPad Pro 12.9英寸(iOS 10.1)上,它似乎缩短了按钮的宽度。我也尝试在viewDidLoad中应用它,但没有用。
所以我的问题是如何让梯度一路走来?或者在哪里设置渐变的最佳位置?
答案 0 :(得分:3)
为按钮添加渐变的扩展名都是正确的,您需要修复的是设置渐变的位置。
移动
startButton.backgroundColor = ECConstants.GenericColors.buttonOrange
startButton.setTitleColor(UIColor.white, for: .normal)
startButton.addGradient(withColors: [UIColor.white.withAlphaComponent(0.3).cgColor, UIColor.clear.cgColor])
到viewDidAppear
或viewDidLayoutSubviews
原因是因为一旦调用了viewDidAppear()
,就会计算出所有视图的大小。
对于粗糙度:(支持设备旋转)
确保在viewDidLayoutSubviews()
中重新计算子图层大小。您的按钮将在设备旋转时更改大小,因此您还需要手动更改子图层大小。