マップ上のオーバーレイにぼかし効果を追加しようとしています。私は実際にマップ上の円の上にぼかし効果が必要です、私がそれを得るために使用する方法はそれほど重要ではありません。MKMapViewでぼかし効果を持つ円を追加する
私はMKCircleRenderer
から拡張されたクラスを持っており、それがカバーするマップ上にぼかし効果を追加したいと考えました。
私は-fillPath:inContext:
メソッドを使用しようとしていましたが、Core GraphicsとCore Imageに対する私の無知は私をどこにも導かず、私はこの問題について本当に失われました。
私の試みはCIFilter
を使用していましたが、私はコンテキストから作成しようとしたCIImage
が必要でした。しかし、私はCGBitmapContext
、CGImage
などの文脈から他のクラスを作成する方法が見つけられませんでした。私が試みたどのような方法でも、理由についての詳細はないNULLが返されました。私はすべてを覚えていないので、それについて何も指摘しないのは残念です。
- (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;
}
代替カスタムMKAnnotation
を使用してUIVisualEffectView
とビューの上にぼかし効果を追加することができます:
私のクラスでは、現在、本当に多く行っていない1つの方法が実装されています。このアプローチの難しい部分は、ズームするときにサイズを増減することです。
これはiOSの8+
編集この場合
で動作するはずです、円の内側の後ろのマップは次の2つの方法があります
はあなたが達成したい正確に何のスクリーンショットを提供することができますか?特定のサークルを除いて地図をぼかしますか?または円をぼかすだけですか?ズームに依存するのはなぜですか? – luk2302
あなたが必要とするもののスクリーンショットを表示する方が良いでしょう –
円をぼかしてください。私はぼかし円で覆われた領域を持っていたいと思います。この領域の半径は0.25マイルにする必要があります。そのため、ズームイン/ズームアウトするにはサイズを変更する必要があります。もうすぐイメージを追加します。 –