嗨,我很难将渐变色应用于我的UIView.它被正确应用,但颜色边界随水平和纵向方向而变化.
如果我在纵向方向上设置正确,那么当我将设备翻转到水平时,不会改变渐变视图的边界.
那么,如何获得UIView水平和纵向设备方向的正确约束和大小?
非常感谢你的帮助!!!
代码我尝试过:
import UIKit
class ViewController: UIViewController {
@IBOutlet var viewBar: UIView!
override func viewDidLoad() {
super.viewDidLoad()
viewBar.layer.shadowOpacity = 0.5
viewBar.layer.shadowOffset = CGSize(width: 3.0, height:2.0)
viewBar.layer.shadowRadius = 5.0
viewBar.layer.shadowColor = UIColor.blueColor().CGColor
let gradient: CAGradientLayer = CAGradientLayer()
gradient.colors = [UIColor.blueColor().CGColor, UIColor.redColor().CGColor]
gradient.locations = [0.0 , 1.0]
gradient.startPoint = CGPoint(x: 0.0, y: 1.0)
gradient.endPoint = CGPoint(x: 1.0, y: 1.0)
gradient.frame.size = self.viewBar.bounds.size
self.viewBar.layer.insertSublayer(gradient, atIndex: 0)
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Run Code Online (Sandbox Code Playgroud)
编码输出:
在viewDidLoad布局还没有发生,所以你得到了错误的框架,移动gradient.frame.size = self.viewBar.bounds.size到任一viewDidLayoutSubviews:或viewWillAppear:那样,你gradient得到正确的框架.
override func viewDidLayoutSubviews() {
gradient.frame.size = self.viewBar.bounds.size
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10747 次 |
| 最近记录: |