Я пытаюсь настроить метод во внешнем классе, который выглядит следующим образом:Вызов метод рисования внешних по отношению к ViewController
myClass.m
- (void)drawSomeStuffInContext:(CGContextRef)context atStartingPoint:(CGPoint *)coords
{
//draw some stuff (ignoring coords for now)
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
CGContextSetLineWidth(context, 1.0f);
CGContextMoveToPoint(context, 10, 10);
CGContextAddLineToPoint(context, 100, 50);
CGContextStrokePath(context);
}
viewController.m
- (void)viewDidLoad
{
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGPoint startCoords = CGPointMake(100.0, 100.0);
[[myClass alloc] drawSomeStuffInContext:currentContext atStartingPoint:startCoords];
}
Проект строится и работает, но я получаю следующие ошибки в журнале: ничего не нарисовано:
[...] <Error>: CGContextSetStrokeColorWithColor: invalid context 0x0
[...] <Error>: CGContextSetLineWidth: invalid context 0x0
[...] <Error>: CGContextMoveToPoint: invalid context 0x0
[...] <Error>: CGContextAddLineToPoint: invalid context 0x0
[...] <Error>: CGContextDrawPath: invalid context 0x0
Я искал веб-сайт для аналогичного вопроса/примера без везения. Существуют ли другие/дополнительные параметры, которые требуются? Должен ли я называть метод draw from from viewDidLoad
? Совет очень ценится!
'myClass' в настоящее время подклассифицирован как NSObject, который возвращает несколько вычислений для меня. Должен ли я перемещать 'drawSomeStuffInContext' в другой класс подклассами из' UIView'? Кажется, у меня что-то не хватает в отношении реализации 'drawRect' с моей текущей настройкой. Большое спасибо за ваш ответ! – Jesse
Если вы хотите нарисовать что-нибудь на экране, тогда класс должен быть UIView подкласса. Поэтому вы можете просто сделать класс подклассом UIView – prince
. Я закончил тем, что перевел все на 'drawRect', который сделал трюк. Полагаю, я мог бы также вызвать свой метод из 'drawRect'. – Jesse