問題タブ [mkmapsnapshotter]
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.
ios - MKMapSnapshotter はイメージの作成に時間がかかります
私のawakeWithContextにMKMapSnapshotterが機能していて、そのイメージをimageViewに設定したいと考えています。
問題は、MKMapSnapshotter が遅くなり、画像が設定されないことです。わずか 1 ~ 2 秒後に、スナップショット イメージが作成されます。
どうすればこれを修正できますか?
ios - MKMapSnapshotter WatchKit メモリ エラー
Apple Watch に接続された実際の iPhone で「ウォッチ アプリケーション」/iOS アプリのウォッチ拡張機能をテストすると、MKSnapshotter に大きな問題が発生します。
インターフェイス コントローラーの 1 つの内部で、次の関数を呼び出します。
これにより、マップのイメージが作成され、WKInterfaceImage がそれで満たされます。イメージを作成するとすぐに、メモリが約 3 MB から 20 MB に跳ね上がり、オプション = nil およびスナップショット = nil に設定しても、そこにとどまります。また、コンソールに次のメッセージが出力されます。
WatchKit 拡張 [9548:2529231] BSXPCMessage は、メッセージのエラーを受信しました: 接続が中断されました
しかし、ここで最悪の事態が発生します。別のスナップショットを作成しようとするとすぐに、メモリ エラーが原因で Watch アプリがクラッシュします。これは、スナップショット作成者がメモリを割り当てた後に解放しないために発生すると思います...どうすれば手動でそれを行うことができますか、または誰かが別のアイデアを持っていますか?
getEndRegion() 関数とは関係ありません。オプションなしのデフォルトのスナップショットでもテストしました->同じ結果です!
シミュレーターでアプリをテストすると、すべて正常に動作します。
アップデート:
MKMapSnapshotter のドキュメントを検索したところ、アプリがフォアグラウンドにある場合にのみスナップショットを配信できるため、メインのアプリケーションからレンダリングできず、iOS ウォッチ拡張機能に割り当てられたメモリが低すぎるため、他の方法はありますか??
ios - MKMapSnapshotOptions : カスタム ピン注釈ビューまたは UIView のスナップショットを追加する
MKMapSnapshotter の startWithCompletionHandler メソッドでマップ ビューのスナップショットを取得しようとしています。カスタム ピン注釈ビューをスナップ ショットに追加したいと考えています。カスタム注釈ビューにラベルがあります。そのため、スナップショットを取得しているときにそのラベルを表示できません。コードは次のとおりです。
ご覧のとおり、drawAtPoint は UIImage の関数です。UIImageView を使用しようとしてから、サブビューとして imageView にラベルを追加しますが、imageView で drawAtPoint を使用できないため、mapView スナップショットにラベルを追加できないことが問題です。
リンクで私が何を意味するかを見ることができます: https://www.dropbox.com/s/83hnkiqi87uy5ab/map.png?dl=0
アドバイスをありがとう。
ios - MKMapSnapshotter 'completionHandler' が iPhone 6/6 以降で呼び出されない
MKMapSnapshotter
APIで動作するアプリを開発しています。
必要な地域で地図のスナップショットを作成します。
次のように、フォアグラウンド アプリの状態とメイン スレッドから呼び出されるコードです。
iOS 8 および 9 でテストした iPhone 6 および 6+ では、完了ハンドラが呼び出されないことに気付きまし
た
。
?
ios - MKMapSnapshotter startWithCompletionHandler は呼び出されませんでした
MKMapSnapshotter の startWithCompletionHandler メソッドの完了ハンドラーがコールバックされない理由はありますか? (エラーでもありません!!)
派手なことは何もしていません。スナップショットを取得して表示するだけで、すべてフォアグラウンドでバックグラウンド処理はありません。
珍しいのは、完全にランダムに見えることです。つまり、うまく機能する場合もあれば、まったく機能しない場合もあります。
これが私のコードです:
異なる iOS バージョンを実行する複数のデバイスで同時にこれをテストしました。 iOS 8.4 を実行する iPhone 5S iOS 9.2 を実行する iPhone 6 iOS 8.2 を実行する iPhone 6+
3 つのデバイスはすべて同じ WIFI に接続されています。iPhone 6+ はほとんど故障しませんが、iPhone 6 はほとんどの場合故障します。
助言がありますか?
uitableview - UITableViewController の各セルには、マップが埋め込まれています。代わりにマップのスクリーンショットに変更する方法はありますか?
私のiOSswift
アプリでは、UITableViewController
セルが動的に追加されています。各セルには がMKMapView
埋め込まれており、各セルのマップの中心を異なる座標に設定しています。私はこのメソッドを呼び出すことでそうしています:
内側cellForRowAtIndexPath
:
これは問題なく機能しますが、多くのレコードではメモリに問題があると思います-ユーザーがテーブルをスクロールしたときにセルが2つしかない場合でも-各マップは即座にロードされ、それを行うのにどれだけの計算能力が必要か想像できますそれで。
私の質問は、動的マップ ビューをマップの実際の位置のスクリーンショットのようなものに変更する方法はありますか? 細胞数が多いほど速くなりますか?
ios - MKMapSnapshotter メモリ クラッシュ - UITableView での複数の呼び出し
セルが表示されたときに生成されるマップ スナップショットを含む UITableView を持つ iOS アプリがあります。使用しているサンプル リストは、モデル クラスで提供される緯度/経度に基づいてマップのスナップショットを表示するだけです。メモリ クラッシュに気付き始めたので、コードを最小限に減らしました。スナップショットのみを実行し、結果に対して何も実行していない場合でも、クラッシュは発生します。cellForItemAtIndexPath
カスタムセルに含まれ、メソッドを介して呼び出されるコードについては、以下を参照してください。
ではdidEndDisplayingCell
、mapSnapshotter をキャンセルするようにしています。参照用に参照してください (テーブルビューを含むメイン VC クラスにモデルのリストを保持しています)。
この最後の手順を実行する前は、ずっと前にクラッシュしていたことに注意してください。しかし今、リストをすばやく下にスクロールし始めると、途切れ途切れになり、途切れることがなくなります。約 150 行のリストを上下に移動すると、30 秒もかからずに、メモリの警告が表示されてクラッシュが発生します。
これを Instruments で実行しましたが、あまり役に立ちませんでした。ヒープと匿名 VM の割り当てが徐々に増加しているように見え、クラッシュを引き起こしている可能性があります。参考までに:
MKMapSnapshotter は信じられないほどの量の CPU と RAM を使用 しています。
これについてどこに行くべきかについて何か考えはありますか?事前に感謝します。さらに情報を提供できる場合はお知らせください。