Я хорошо знаю, что этот вопрос задавался много раз, но, очевидно, что-то другое. Я рисую прямоугольники над гранями в UIImageView, и поэтому мне нужно, чтобы прямоугольники были прозрачными.Как нарисовать прозрачность в UIView?
Насколько я вижу, я выполняю все рекомендации по созданию прозрачного фона в представлении (например, очистите прямоугольник текущего контекста графики). Я также устанавливаю представление, чтобы оно не было непрозрачным и устанавливало backgroundColor как clearColor. Нужны ли другие шаги?
-(instancetype)init
{
self = [super init];
if (self) {
self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
self.clearsContextBeforeDrawing = NO;
}
return self;
}
- (void)drawRect:(CGRect)rect {
UIBezierPath * path = [UIBezierPath bezierPathWithRect:rect];
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor clearColor] setFill];
CGContextClearRect(ctx, rect);
[self.rectColor setStroke];
path.lineWidth = 5.0;
[path stroke];
}
@end
мне нужен фон, чтобы быть прозрачным, и эта точка зрения только появляется черный по умолчанию. Я попытался очистить прямоугольник CGContext напрямую, так как я слышал, что это (обычно) решение.
Возможно, вы могли бы предоставить снимок экрана результата, который вы получаете с помощью этого кода, который вы используете. – beyowulf
Каждый прямоугольник - это просто 'UIView ', который переопределяет' drawRect'. Они добавлены в качестве подзонов ImageView. Они рисуют желтый путь безье. –
Вы не ответили на мой вопрос. См. Мой ответ ниже. – matt