Ich versuche, einen Unschärfe-Effekt auf einem Overlay auf einer Karte hinzuzufügen. Ich brauche eigentlich den Unschärfe-Effekt über einen Kreis auf der Karte, die Methode, die ich benutze um das zu erreichen ist nicht so wichtig.Hinzufügen eines Kreises mit Unschärfe-Effekt auf einem MKMapView
Ich habe eine Klasse, die von MKCircleRenderer
erstreckt und ich wollte einen Unschärfe-Effekt über die Karte hinzufügen, die es abdeckt.
Ich habe versucht mit der -fillPath:inContext:
Methode, aber meine Ignoranz über Core Graphics und Core Image führte mich nach nirgendwo und ich bin wirklich wirklich verloren in diesem Problem.
Mein Versuch war mit der CIFilter
und dafür brauchte ich eine CIImage
, die ich versuchte, aus dem Kontext zu erstellen. Aber ich habe keine Möglichkeit gefunden, eine CGBitmapContext
, CGImage
oder irgendeine andere Klasse aus dem Kontext zu erstellen. Jede Methode, die ich versuchte, ergab NULL ohne weitere Details darüber, warum. Ich kann mich nicht an alles erinnern, was ich versucht habe, und es tut mir leid, dass ich nichts darauf hingewiesen habe.
Meine Klasse implementiert derzeit ein Verfahren, die nicht wirklich viel machen:
- (instancetype)initWithOverlay:(id<MKOverlay>)overlay {
if (self = [super initWithOverlay:overlay]) {
self.strokeColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1];
self.fillColor = [UIColor colorWithRed:0.4 green:0.2 blue:0.2 alpha:0.1];
self.lineWidth = 1;
}
return self;
}
Eine Alternative könnte den Unschärfe-Effekt auf die Ansicht mit den UIVisualEffectView
einem benutzerdefinierten MKAnnotation
und fügen wird. Der schwierige Teil bei diesem Ansatz ist das Vergrößern/Verkleinern der Größe beim Zoomen.
Dieses auf iOS 8+
bearbeiten
In diesem Fall funktionieren sollte, sollte die Karte hinter der Innenseite des Kreises
können Sie einen Screenshot von dem, was genau wollen Sie erreichen? Verwende die Karte mit Ausnahme eines bestimmten Kreises? Oder nur einen Kreis verschwimmen lassen? Warum ist es zoomabhängig? – luk2302
Es wäre besser, wenn Sie einen Screenshot von dem zeigen, was Sie brauchen –
Verwischen Sie den Kreis. Ich hätte gerne einen Bereich mit einem unscharfen Kreis. Das Gebiet sollte einen Radius von einer Viertelmeile haben, also wenn jemand hinein-/hinauszoomt, muss es seine Größe ändern. Ich werde bald ein Bild hinzufügen. –