在自定义 UIView 子类中调用 DrawRect 时出现以下错误:
CGContextFillRects: invalid context 0x0
我的 UIView 子类“EVGameView”中的 DrawRect 方法实现如下:
- (void)drawRect:(CGRect)rect
{
CGRect rectangle = CGRectMake(0, 100, 320, 100);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, rectangle);
}
我在我的 viewController 'viewDidLoadMethod' 中实例化了我的 EVGameView 类:
- (void)viewDidLoad
{
srand(time(0));
[super viewDidLoad];
gameBoard = [[EVBoard alloc] init];
[gameBoard initBoard:10 : 10 : mainBoard];
gameView = [[EVGameView alloc] init]; // EVGameView instance
.
.
.
}
我在以下方法中调用 drawRect 方法:
- (void)drawStartPosition
{
CGRect rect;
rect.origin = startPos;
rect.size.width = 10;
rect.size.height = 10;
[gameView drawRect: rect];
}
似乎没有设置上下文,因为 UIGraphicsGetCurrentContext() 返回“nil”。我在 youTube 上看到过一些例子,人们有一个相同的 drawRect 方法,而且效果很好。我在 .xib 文件中设置了一个单独的视图并将其链接到我的 gameView 实例,但仍然没有运气。对此的任何帮助都非常感谢!
谢谢-