So zeichnen Sie die Linie exakt auf dem Bildmuster

8

Ich habe eine UIImageView. Darin zeichne ich eine Zeile mit User-Touch-Event. Problem ist, dass eine Linie irgendwo in UIImageview gezeichnet werden kann, aber ich mag nur eine Linie mit Bildmuster zeichnen.

Sieh dir beispielsweise dieses Bild an. Ich muss nur eine Linie auf dem Bildmuster zeichnen.

Das ist mein Code:

%Vor%

Ich hoffe, dass jemand mein Problem löst.

    
Kishore Kumar 09.01.2016, 12:49
quelle

2 Antworten

7

Du kannst es auf diese Weise versuchen.

Nehmen wir an, Sie haben eine bezierPath namens maskPath , in meinem Fall ist es textPath , die verwendet wird, um die imageView zu maskieren.

Ich verwende ein einfaches maskView , das den Buchstaben Q auf imageView zeichnet.

Hinzufügen von maskPath : (Fügt dem imageView eine einfache Q-förmige Maske hinzu)

%Vor%

Sie haben bereits die Methode:

%Vor%

Sie können jetzt überprüfen, ob sich der Berührungspunkt in der textPath befindet, die bezierPath ist. Wenn der touchPoint in textPath ist, dann erlaube das Zeichnen, ansonsten zeichne nicht.

Das Ergebnis wird etwa so aussehen:

Wie Sie sehen, erlaubt Ihnen dieser Code, nur im maskierten Pfad zu zeichnen. Wenn Sie außerhalb von textPath zeichnen möchten, können Sie einfach Folgendes tun:

%Vor%

Hinweis: Sie müssen auf Ihre Berührungsmethode beim Zeichnen der Linie achten. Als Bezier-Pfadmethode fügt addLineToPoint dem TouchPoint eine Zeile hinzu und diese Zeile kann den maskiertenPfad kreuzen. Sie müssen sicherstellen, dass Sie sich in der Nähe des vorherigen Bezier-Pfads befinden und einen neuen beginnen, um zu vermeiden, dass die Linien auf dem äußeren Teil des maskierten Bereichs gezeichnet werden.

    
Teja Nandamuri 11.01.2016 14:16
quelle
0

Ich nehme an, dass Sie versuchen, Alphabete in einer Sprache anzuzeigen, möglicherweise können Sie diese Sprache Schriftart für die dynamische Anzeige verwenden. Nur ein Gedanke. Zusammen mit der oben genannten Logik können Sie das versuchen.

    
Kannan Prasad 12.01.2016 05:56
quelle