問題タブ [calloutview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios8 - iOS8 吹き出しの吹き出しをカスタマイズする (Swift)
MKAnnotationView をクリックすると視覚化される iOS8 MapView Callout バブルをカスタマイズしたいと考えています。デフォルトの吹き出しは少し制限がある (タイトル、サブタイトル、および 2 つのアクセサリ ビューしかない) ため、別の解決策を見つけるのに苦労しています。ここに2つの可能な方法と私が直面している相対的な問題があります:
問題 1) カスタム吹き出しの作成
Appleのドキュメントを掘り下げると、これが見つかりました:
標準の吹き出しの代わりにカスタム ビューを使用する場合は、ユーザーが吹き出しを操作したときに吹き出しが適切に表示および非表示になるように、追加の作業を行う必要があります。次の手順は、ボタンを含むカスタム コールアウトを作成するプロセスの概要を示しています。
カスタム コールアウトを表す NSView または UIView サブクラスを設計します。カスタム コンテンツを描画するには、サブクラスで drawRect: メソッドを実装する必要がある可能性があります。吹き出しビューを初期化し、ボタンに関連するアクションを実行するビュー コントローラーを作成します。リスト 6-7 に示すように、アノテーション ビューで、hitTest: を実装して、アノテーション ビューの境界外でコールアウト ビューの境界内にあるヒットに応答します。注釈ビューで setSelected:animated: を実装して、ユーザーがクリックまたはタップしたときに注釈ビューのサブビューとして吹き出しビューを追加します。ユーザーがコールアウト ビューを選択したときにコールアウト ビューがすでに表示されている場合、 setSelected: メソッドは注釈ビューからコールアウト サブビューを削除する必要があります (リスト 6-8 を参照)。注釈ビューの initWithAnnotation: メソッドで、canShowCallout プロパティを NO に設定して、ユーザーが注釈を選択したときにマップに標準の吹き出しが表示されないようにします。リスト 6-7 は、hitTest を実装する例を示しています。これは、注釈ビューの境界外にある可能性のあるコールアウト ビューでヒットを処理します。
リスト 6-8 は、 setSelected:animated: を実装して、ユーザーが注釈ビューを選択したときにカスタム コールアウト ビューの到着と終了をアニメーション化する例を示しています。
さて、この Objective-C コードを Swift に変換しようとすると、次のプロパティが見つかりません。
吹き出しの吹き出しビューにアクセスするにはどうすればよいですか?
問題 2) デフォルトの吹き出しの変更
前に述べたように、表示されるデフォルトのコールアウトには、タイトル、サブタイトル、および 2 つのアクセサリ ビューがあります。文字列のフォント スタイルやバブルの色をあまり変更できないことに気付きました。また、タイトルが 24 文字を超えると、アクセサリ ビューの位置がめちゃくちゃになります。この問題を回避するにはどうすればよいですか?
swift - カスタム コールアウト キャッチ タッチ イベント
SMCalloutViewを使用して、mapView のカスタム コールアウトを作成しています。私が直面している問題は、吹き出しビューが表示されているときにユーザーが吹き出しを押すと、別の注釈が吹き出しビューの下にある場合、現在選択されている注釈が閉じられ、表示されている吹き出しビューの下にある注釈が選択されます。
すべてのタッチ イベントをキャッチする UIView サブクラスを作成できるのではないかと考えました。そこで、UIView サブクラスを作成しました。mapView に直接追加すると、すべての関数が正しく起動します。しかし、ポップオーバーに使用すると、まったく機能しないようです。
完成させるために、ここでカスタム CalloutView を呼び出します。
私は何をする必要がありますか。ユーザーが吹き出しビューを押した場合、吹き出しを閉じたり、下の mapView/Annotation にタッチ イベントを渡したりしません。代わりに、関数を呼び出す必要があります。どんなヒントも素晴らしいでしょう。
ios - iOS: 注釈吹き出しビューでボタンの背景画像が変更されない
店舗を表す多数の注釈を含む MKMapView があります。ユーザーが注釈をタップすると、カスタムの注釈ビューが表示されます。このビューには、ストアをユーザーのお気に入りに追加するお気に入りボタンが含まれています。
ユーザーがこのボタンを押すと、 backgroundImageプロパティが別の画像に変更され、お気に入りのストアとしてのステータスが示されます。
発生している問題は、ユーザーがタップしても画像が変化しないことです。メソッドを呼び出してストアをお気に入りに追加していますが、画像は変更していません。ユーザーが吹き出しを閉じてから、注釈をもう一度タップして吹き出しを表示すると、ボタンは正しい背景画像を表示します。
この問題は iOS7 デバイスでのみ発生しますが、iOS7 シミュレーターおよび iOS8 シミュレーター/デバイスでは完全に機能します。
どんな助けでも素晴らしいでしょう、ありがとう。
ios - 一度に 3 つの異なる注釈の吹き出しビューを表示することはできますか?
現在マップ上にある 3 つの注釈すべてに対して calloutView を表示し、ユーザーがそれらの吹き出しに書かれた情報に基づいて操作するものを決定できるようにする必要があります。
私は電話してみました:
ただし、最後の注釈に対してのみ CalloutView を表示することになります。
これに対する解決策はありますか?
objective-c - calloutAccessoryControlTapped not being called
I am trying to use the CalloutAccessory feature, but the delegate method never gets called. I have the delegate properly set up as other mapview delegate methods in my code are firing fine, but for some reason for this one, the delegate method never gets called when the button is tapped.
I have tried extending RouteViewAnnotation from both the MKAnnotationView and the MKPinAnnotationView, and it makes no difference.. the delegate method never gets called.
What am I missing? Do I need something else that isn't here for this to work? The RouteAnnotationView just overrides the drawrect, and has no other code in it.
Relevant Code:
In ViewForAnnotation
In calloutAccssoryControlTapped
ios - カスタム MapKit 注釈が機能しない
カスタム Callout を作成しようとしていますが、何らかの理由で既定のポイント イメージが変更されません。
Parse を使用してポイントのデータを取得しています。MKAnnotationView から継承するカスタム クラス (customAnnotationView) を作成し、mapView 関数もオーバーライドしています。
ビューコントローラーは次のとおりです。
customAnnotationView : _
どんな助けでも大歓迎です! ありがとう !
ios - iOS - 吹き出しのボタンの DetailDisclosure を取得できません
iOS 9 で Swift を使用しています。ContactAdd 以外のどのボタン タイプを選択しても、情報アイコンのみが表示されます。マップビューの吹き出しの右側にある DetailDisclosure アイコンを取得しようとしています。コードは次のとおりです。