【发布时间】:2018-02-27 12:22:15
【问题描述】:
您好,我正在尝试在 UIButton 中添加渐变背景。这是我的方法,但对于 iPhone 7 plus 或 8 plus,它并没有覆盖所有按钮。当看到 uibutton 框架 (174.5, 0.0, 164.5, 47.0) 但加载后我可以看到它是 (194.5, 0.0, 184.5, 47.0)。看起来像这样
func setRedGradiant(){
self.layer.shadowOffset = CGSize.zero
self.layer.shadowColor = UIColor(red:0, green:0, blue:0, alpha:0.5).cgColor
self.layer.shadowOpacity = 1
self.layer.shadowRadius = 4
let gradient = CAGradientLayer()
print(self.frame)
gradient.frame = CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height)
gradient.colors = [
UIColor(red:0.97, green:0.34, blue:0.39, alpha:1).cgColor,
UIColor(red:0.94, green:0.17, blue:0.2, alpha:1).cgColor
]
gradient.locations = [0, 1]
gradient.startPoint = CGPoint(x: 0.5, y: 0)
gradient.endPoint = CGPoint(x: 0.5, y: 1)
gradient.cornerRadius = self.frame.size.height / 2
self.layer.addSublayer(gradient)
}
@IBOutlet weak var signInButton: UIButton!{
didSet{
signInButton.setRedGradiant()
}
}
【问题讨论】:
-
你在 viewDidLoad 中调用 setRedGradiant 吗?如果是这样,那么它肯定会显示故事板的框架。
标签: ios swift uibutton gradient