查看边框颜色:为什么我必须经历'图层'

时间:2016-12-01 11:34:47

标签: swift3

我正在使用chart framework,我有一个名为lineChartView的视图。我希望看到它frame/bounds,所以我尝试了

    lineChartView.borderLineWidth = 1
    lineChartView.borderColor = .red

这不起作用,但我找到了一个代码来使它工作:

    lineChartView.layer.borderWidth = 1          
    lineChartView.layer.borderColor = UIColor.red.cgColor

layer的目的是什么?为什么第一段代码不起作用?

1 个答案:

答案 0 :(得分:0)

历史悠久。 NSView(Mac)最初没有图层。 A"层"是一个GPU增强的画布;曾经有一段时间GPU无处不在,动画由NSTimer运行,恐龙在世界各地漫游。他们在10.5中添加了图层作为Core Animation的一部分(主要是#34; GPU加速的东西"),但是你必须用wantsLayer来询问它们。图层带来了自动边框和圆角等功能以及大量其他功能,但如果您不需要,则可以继续使用标准NSView。当他们编写UIKit时,他们在现有的核心动画CALayer之上构建它,使所有视图都支持层,并且通常"现代化"来自NSView的很多东西,但它们并没有从根本上改变视图和图层之间的API划分。他们可以添加一大堆传递包装方法(view.borderColor - > view.layer.borderColor),但他们没有。