Создание прозрачности 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;
}
Или вы могли бы просто пойти в раскадровку и снять флажок с непрозрачного флажка,
![введите описание изображения здесь]()