2017-09-18 4 views
0

(Re:Mapbox for Swift)Mapbox Webサイト(https://www.mapbox.com/ios-sdk/examples/custom-callout/)の例を使用してカスタムコールアウトビューを実装しました。注釈が画面の端近くにある場合、のデフォルトののコールアウトビューは、コールアウトがビュー内に完全に収まるように、x値の位置を調整します。この機能はカスタム吹き出しビューで複製することができる一つの方法は、調整を適用することによるものである(必要な場合)selfのフレーム(吹き出しビュー自体)を設定する場合:本コールアウトでパンニング時にMapboxのコールアウトビューの再配置をオーバーライドする方法はありますか?

self.frame = CGRect(x: frameOriginX + adjustmentX, y: frameOriginY, width: frameWidth, height: frameHeight) 


をデリゲートメソッド:

func presentCallout(from rect: CGRect, in view: UIView, constrainedTo constrainedView: UIView, animated: Bool) 


しかし、これをやってカスタム吹き出しは、の上にセンターバックにその位置を元に戻しますユーザーがパンニングを開始したとき(またはマップや別の注釈に触れた場合など)は、(注釈ビュー)になります。ただし、のデフォルトのコールアウトビューでは、ユーザーがマップをパンすると、コールアウトビューに適用された調整が残ります。

したがって、カスタム吹き出しビューのx値の位置を適切に調整して、ユーザーが地図をパ​​ンする際に、その値を保持する方法を教えてください。

答えて

0

ユーザーがマップをパンすると、コールアウトビューが再描画されます。再描画するたびにx位置を調整するには、カスタム吹き出しのdraw機能を無効にする必要があります。

関連する問題