2013-03-15 8 views
10

Ich möchte eine UIView zu meinem UIViewController hinzufügen, aber ich möchte, dass es transparent bleibt, bis ich beschließe, ein Oval in der UIView zu erstellen.UIView transparent machen

Bis ich das Oval erstellt habe, kann ich das Alpha meiner Ansicht auf 0 setzen, aber wenn ich das Oval hinzufügen möchte, ist die Hintergrundfarbe immer noch schwarz.

hier ist, wie es mit einem Bündel von Ovalen

image

In meinem UIView sieht: diese ein

- (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]; 
} 

Antwort

13
- (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]; 
} 
+0

oh interessante Lösung

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

Oder Sie könnten nur auf das Storyboard gehen und das undurchsichtige Kontrollkästchen deaktivieren! Danke vielmals – peter1234

22

Bitte versuchen Sie es

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

zu verwenden Im Ihr ViewController, könnte man sagen, dass undurchsichtig ist NEIN. Nehmen wir an, Ihre Ansicht heißt myCustomView. wie- enter image description here