2016-07-31 8 views
0

Okay, so habe ich eine Grundansicht, die wie folgt aussieht:Löschen eine Region, so dass Ansichten hinter Show durch

base layer content

Und ich habe einen Blick auf ihn, mit einigen Subviews, dass Blicke dies wie:

both layers content

sagen: Laß die bunten Kringeln meine Subviews in dieser Überlagerungsansicht darstellen.

Aber es gibt Teile meiner Basisschicht, die ich zeigen möchte. Wenn ich eine rect wie diese:

rect that should clip overlay contents

Ich mag es so aussehen:

overlay view contents clipped by rect

Ich bin ehrlich zu einem bisschen eines losen Ende, wenn es darum geht, um dies zu implementieren. Mein erster Gedanke war, CGContextSetBlendMode(.Clear) zu verwenden, aber das Zeichnen erfolgt hinter Subviews, nicht über ihnen. Ich kann auch nicht einfach die Inhalte der Unteransichten rendern, ohne sie meiner Ansicht hinzuzufügen, denn wenn sie nicht ausgeklammert sind, müssen sie immer noch interaktiv sein.

Um einen Schraubenschlüssel in diese Arbeiten zu werfen; Diese Basisschicht ist ein WKWebView, und es muss immer noch interaktiv sein.

Ich bin ernsthaft hier ratlos. Irgendeine Hilfe?

+0

Also, was ist mit einer Maske? – matt

+0

... Ich wusste nicht, dass das eine Sache war? –

Antwort

2

Ich habe ein wenig Schwierigkeiten zu verstehen, was die Schwierigkeit ist ... Sie scheinen eine Maske zu beschreiben. Vielleicht bin ich falsch; Ich könnte eine weitere Anforderung vermissen. Aber mit einer Maske war ich leicht in der Lage, dieses Ergebnis zu erreichen:

enter image description here

Das ist ein Hintergrund mit einigen Worten in ihm; davor eine klare Sicht auf alles andere; und die Squiggles sind Unteransichten der klaren Sicht. Die freie Sicht hat eine Maskenschicht, die das rechteckige Loch in den Squiggles schneidet. Berührung wird von der klaren Sicht nicht beeinflusst, da Berührungen durch eine klare Sicht "fallen"; es ist nur da, um die Maske (und die Schnörkel) zu beherbergen.

+0

Ja, ich hatte keine Ahnung, dass eine Maske existiert. Nicht sicher, warum ich nicht nach dem Wort gesucht habe, wenn man eine Ebenenmaske betrachtet, ist genau das, was ich in Photoshop erreicht habe ... schreibe es auf einen Brainfart: P –

+0

Mehr über Maskierungsschichten in meinem Buch: http://www.apeth.com /iOSBook/ch16.html#_shadows_borders_and_more Und natürlich hat eine Ansicht eine Ebene, also auch Ansichten. – matt

Verwandte Themen