Ich erstelle eine iPad App für 3.2 und höher. Meine App hat eine Überlagerungsansicht mit einer halbtransparenten Darstellung, die alles darunter dunkler macht. In der Mitte dieser Ansicht bin Hacken ich ein Loch in diesem Halbdurchsichtigkeit Teil des Hintergrundfilters durch unversehrt, mit diesem Code zu lassen:Wie kann ich eine UIView mit abgerundeten Ecken aus der übergeordneten Ansicht entfernen?
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect intersection = CGRectIntersection(hole.frame, rect);
CGContextClearRect(context, intersection);
}
Zusätzlich kann das ‚Loch‘ Ansicht abgerundete Ecken hat, aufgebracht über :
self.layer.cornerRadius = 4.25;
Dieses große Ausnahme ein kleines Problem arbeitet - diese abgerundeten Ecken nicht berücksichtigt werden, so dass das Loch, das anstelle von quadratischen Ecken aus abgerundeten gehackt wird. Ich muss das reparieren, aber ich habe keine Ahnung wie. Irgendwelche Ideen, Beispiele, Gedanken?
clipsToBounds ist, ob Sie Objekte außerhalb der Grenzen der Empfängeransicht zeichnen können oder nicht. Mit anderen Worten, können Sie die Unteransichten einer UIView außerhalb der Grenzen der übergeordneten UIView zeichnen. Nicht sicher, wie das hier helfen wird. – Allyn
Der 'cornerRadius' wird in den Clipping-Pfad aufgenommen (grob gesagt), also müssen Sie Clipping aktiviert haben, damit es auf Ihren Inhalt wirkt. –
Ich habe es gerade versucht und es scheint nicht die Ecken zu reparieren..ist da noch etwas anderes zu tun, damit es funktioniert? – Allyn