gpt4 book ai didi

ios - CALayer 子类 "drawInContext"调用但不绘制?

转载 作者:可可西里 更新时间:2023-11-01 03:02:37 27 4
gpt4 key购买 nike

我正在尝试在 CALayer 子类中绘制。drawInContext 使用 setNeedsDisplay 调用,但未绘制任何内容。在这里做什么/出错了?

 - (void)drawInContext:(CGContextRef)ctx
{
CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);
[[UIBezierPath bezierPathWithRect:CGRectMake(100, 100, 100, 100)] fill];

[@"Vowel" drawAtPoint:CGPointMake(0, 0) withFont:[UIFont fontWithName:@"Chalkboard" size:14]];
}

编辑我收到此错误:

CGContextAddPath: invalid context 0x0

谢谢沙尼

最佳答案

您混合了 CG 调用和 UIKit 调用。 -[UIBezierPath fill]-[NSString drawAtPoint:withFont:] 都绘制到 UIKit 上下文堆栈顶部的上下文中。这与传递到 -drawInContext: 中的上下文不同。您应该将函数修改为:

- (void)drawInContext:(CGContextRef)ctx {
UIGraphicsPushContext(ctx);
[[UIColor redColor] setFill];
[[UIBezierPath bezierPathWithRect:CGRectMake(100, 100, 100, 100)] fill];
[@"Vowel" drawAtPoint:CGPointMake(0, 0) withFont:[UIFont fontWithName:@"Chalkboard" size:14]];
UIGraphicsPopContext();
}

关于ios - CALayer 子类 "drawInContext"调用但不绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8985912/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com