Ich analysiere eine SVG-Datei nach UIBezierPath
. Ich würde gerne wissen, ob ein CGPoint
innerhalb oder außerhalb der UIBezierPath
ist. Dazu benutze ich containsPoint:
. Wenn ich das im Simulator starte, funktioniert alles (fast!). Wenn ich ein iPad-Gerät starte, stürzt es auf einigen Pfaden und Punkten ab. Ich rufe closePath
für jedes UIBezierPath
an, bevor ich containsPoint:
anrufe.
Hier sind einige Pfade und Punkte, die es zum Absturz bringen (ich randomize die Punkte, also könnte es mehr Crash-Punkte geben):
%Vor% Ich kann nicht herausfinden, warum es abstürzt. Für mich sollte es YES
oder NO
zurückgeben, egal welchen Pfad oder Punkt es bekommt.
Warum stürzt es ab? : - (
Es stellt sich heraus, dass der Absturz ein Fehler im Framework ist. Diese Antwort bietet eine weitere Möglichkeit, festzustellen, ob sich ein Punkt in einem UIBezierPath
befindet.
Probieren Sie die Techniken zur Trefferprüfung in diesem Beitrag aus:
Ich benutze dies in einer meiner Apps und es funktioniert ohne Probleme. Seine Beispiele waren alles, was ich brauchte, um die Dinge zum Laufen zu bringen. Wenn du mehr Hilfe brauchst, kann ich heute Nacht meinen Code schreiben.
Wenn Sie Hilfe beim SVG-Parsing benötigen, habe ich ein Github-Projekt abgezweigt, um SVG-Pfade zu analysieren, und es um Stützlinien- und Polylinienelemente erweitert. Ich konvertiere SVGs in UIBezierPaths und mache dann Animationen und treffe Tests zum Fingerzeichnen.
Tags und Links objective-c ios quartz-core