Я пытаюсь нарисовать прозрачный круг UIView. Основываясь на answer на этом вопросе, я решил сделать подкласс UIView
под названием PartialTransparentView
, чтобы создать анимирующий прозрачный круглый вид.Рисование круговой прозрачный вид внутри UIView
У меня возникли проблемы в методе drawRect
в реализации этого подкласса, чтобы получить прозрачный вид рисования, чтобы на самом деле отображаться как круговой, а не прямоугольник по умолчанию. Основываясь на следующем коде и предложениях от этого answer, я должен сначала установить контекст, а затем заполнить цвета позже. Однако даже после нескольких других перестановок кода он все еще не работает. Любой совет будет очень полезен!
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[backgroundColor setFill];
UIRectFill(rect);
for (NSValue *holeRectValue in rectsArray) {
CGRect holeRect = [holeRectValue CGRectValue];
CGContextAddEllipseInRect(context, holeRect);
CGRect holeRectIntersection = CGRectIntersection(holeRect, rect);
[[UIColor clearColor] setFill];
UIRectFill(holeRectIntersection);
}
}
Спасибо за предложение. Я добавил 'CGContextSetBlendMode (контекст, kCGBlendModeClear);' прямо перед 'CGContextAddEllipseInRect (context, holeRect);' как было предложено, но он не работает. В качестве меры предосторожности я также пробовал такие места, как сразу после получения контекста, но он также не работает. Не могли бы вы немного разобраться в ответе? Спасибо! – daspianist