我正在使用chart framework
,我有一个名为lineChartView
的视图。我希望看到它frame/bounds
,所以我尝试了
lineChartView.borderLineWidth = 1
lineChartView.borderColor = .red
这不起作用,但我找到了一个代码来使它工作:
lineChartView.layer.borderWidth = 1
lineChartView.layer.borderColor = UIColor.red.cgColor
layer
的目的是什么?为什么第一段代码不起作用?
答案 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
),但他们没有。