Создание прозрачности UIView

Я хочу добавить UIView к моему UIViewController, но я хочу, чтобы он был прозрачным, пока я не решил создать Oval внутри UIView.

Пока я не создаю овал, я могу установить свою альфа-версию в 0, но когда я хочу добавить овал, цвет фона по-прежнему остается черным.

вот как это выглядит с кучей овалов

image

В моем UIView:

- (void)drawRect:(CGRect)rect
{
    [self pushContext];
    UIBezierPath *oval = [UIBezierPath bezierPathWithOvalInRect:self.bounds];
    [[UIColor redColor] setFill];
    [oval fill];
    self.opaque = NO;
    [self setBackgroundColor:[UIColor clearColor]];

    [oval addClip];
    [self setBackgroundColor:[UIColor clearColor]];

    [self popContext];
}

Ответ 1

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code

        self.opaque = NO;

    }
    return self;
}



- (void)drawRect:(CGRect)rect
{
    [[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0] setFill];
    UIRectFill(rect);
    [self pushContext];
    UIBezierPath *oval = [UIBezierPath bezierPathWithOvalInRect:self.bounds];
    [[UIColor redColor] setFill];
    [oval fill];

    [oval addClip];

    [self popContext];
}

Ответ 2

Попробуйте использовать этот

view.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
view.opaque = NO;

Ответ 3

В вашем ViewController вы можете сказать, что непрозрачным является НЕТ. Скажем, ваш взгляд называется myCustomView.

- (void)viewDidLoad {
    [super viewDidLoad];
    self.myCustomView.opaque = NO;   
}

Или вы могли бы просто пойти в раскадровку и снять флажок с непрозрачного флажка, введите описание изображения здесь