Только что начал работать с Core Graphics, и я, вероятно, понятия не имел, что происходит.Не правильно рисует CG
В следующем коде я пытаюсь создать небольшой закругленный полупрозрачный черный квадрат накладывается поверх UINavigationController, но до сих пор ничего не объявился ...
UIView *notificationView = [[UIView alloc] initWithFrame:[[[self navigationController] view] frame]];
CGRect rect = CGRectMake(self.view.frame.size.width/2 - 50, self.view.frame.size.height/2, 100, 100);
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0);
[[UIColor colorWithWhite:0 alpha:0.5] setFill];
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:10];
[path fill];
[notificationView setNeedsDisplay];
[[[self navigationController] view] addSubview:notificationView];
Этот код выйдет из строя где-либо вне 'drawRect', потому что' UIGraphicsGetCurrentContext() 'вернет' nil'. Посмотрите на 'UIGraphicsBeginImageContextWithOptions' – borrrden
OK Я обновил код, все еще не отображая ничего:/ –
Вам действительно нужно лучше понять, как все это работает. Я сказал «заглядывать» в это, а не «просто вставлять туда». Это будет рисовать буфер изображения (но вам все равно нужно что-то с ним делать). Однако я вижу, что вы хотите, чтобы он отображался на экране. Если вы хотите врисовать в самом навигационном контроллере, вам нужно будет подклассифицировать его и переопределить его метод 'drawRect'. * Только внутри этого метода будет 'UIGraphicsGetImageContext()' return non-'nil' (и вам не нужно начинать с него контекст изображения). – borrrden