オーバーレイ付きのマップ ビューがあります。ユーザーがズームアウトしすぎないように制限したい。そのため、ユーザーがスクロールアウトしてオーバーレイの一部が見えない場合は、オーバーレイの最大の高さにズームインします。ズームと同様に、ユーザーが端をスクロールできないようにしたいです。
私はこれを実装することができました(またはそう思った)。私が書いたコードは iPhone 5 で動作しますが、Boss フォンとシミュレーターでテストすると、マップはサイズ変更を試み続け、無限ループに陥ります。
これはループ内の私のアプリのビデオです。
ビデオから、両方のエッジがマップから外れて表示されるため、マップがループする必要があることがわかります。これを停止するために、コードがズームインするため、ユーザーが移動した端に戻る前に両方の端が見えなくなります。
私が言ったように、これは私のデバイスの1つで機能しますが、他のデバイスでは機能しません! 私はこれを3日間修正しようとしてきましたが、キーボードで頭を叩きたいです! どんな助けでも素晴らしいでしょう。
ここに私のコードのコピーがあります。私はそれをコメントし、理解しやすいようにしました。
編集: iOS 6.0.1 に更新されました。私のiPhone 5ではまだ動作しますが、非常にズームインして開始し、最小ズームを低く設定しすぎます