当我按照以下方式编写代码时..
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(context, kCGBlendModeDifference);
sublayer = [CALayer layer];
sublayer.backgroundColor = [UIColor redColor].CGColor;
sublayer.opaque = NO;
sublayer.frame = CGRectMake(30, 30, 250, 200);
[sublayer renderInContext:context];
sublayer1 = [CALayer layer];
sublayer1.opaque = NO;
sublayer1.backgroundColor = [UIColor greenColor].CGColor;
sublayer1.frame = CGRectMake(120, 120, 100, 250);
[sublayer1 renderInContext:context];
}
我得到如下第一张图片
sublayer, sublayer1 的位置不正确,因为我已经为它们设置了框架。它们的交集是混合色。为什么他们不设置实际位置?
但是当我使用时addSublayer
,我得到了第二张图片。这里 sublayer, sublayer1 的位置是正确的。它们的交集不是混合颜色。发生了那样的事。
为什么我创建子图层是,当我拖动子图层时,它们的交叉部分必须是混合颜色。请任何人向我解释。
提前致谢。