【发布时间】:2012-05-08 23:09:03
【问题描述】:
我对 CALayer 的属性边界感到困惑,
- (void)viewDidLoad {
[super viewDidLoad];
CALayer *sublayer = [CALayer layer];
sublayer.backgroundColor = [UIColor blueColor].CGColor;
sublayer.frame = CGRectMake(18, 18, 154, 154);
[self.view.layer addSublayer:sublayer];
CALayer *sublayer2 = [CALayer layer];
sublayer2.backgroundColor = [UIColor redColor].CGColor;
sublayer2.frame = CGRectMake(20, 20, 150, 150);
sublayer2.bounds = CGRectMake(0, 0, 50, 50);
sublayer2.zPosition = 10;
[self.view.layer addSublayer:sublayer2];
}
sublayer2 在 sublayer1 的矩形中心画一个 50X50 的小矩形, 但如果注释掉这一行,它将绘制一个 150X150 的矩形:
sublayer2.bounds = CGRectMake(0, 0, 50, 50);
【问题讨论】:
-
前辈们不断向我们解释这些事情令人沮丧,但您确实编写了一段很好的代码来说明 sch 的“指南”链接中提出的概念。您可以将代码添加到重构、重置边界、更改中心等,作为按钮操作或将日志添加到控制台以显示生成的矩形——这将是一个更好的说明。然后,您可以在结论中添加您自己的答案。