iPhone の画面に十字線があり、その下にパビリオン (地図上の点) が移動すると、地図のズームを開始したいと考えています。パビリオンが十字線の下に来て、それがもうその下にない瞬間に、検出が機能するように準備が整いました。
今のところ、ここに疑似コードで投稿します。
- (void) checkForPavilionUnderCrosshair {
if(new pavilion under crosshair) {
// start zooming
}
else if(just left pavilion under crosshair){
// stop zooming
}
}
だから私が今する必要があるのは、トリガーし続けることです:
mapView setZoom:(mapView.zoom+0.1) animated:NO];
そして、十字線がパビリオンから外れると、その進行を止めることができます。
私はstackoverflowでいくつかの検索を行いましたが、見つけた投稿には、たとえば停止が含まれていませんでした。私はプログラムでタイミングを計った経験がないので、探しているものを誰かが教えてくれませんか?
[self performSelector:@selector(zoomTest) withObject:self afterDelay:0.0]; を試しました。
マップに触れ続けて指を動かすと、checkForPavilionUnderCrosshair が思い通りに維持されます。しかし、画面に触れるのをやめると実行セレクターが起動するため、画面に20秒間触れると、20秒遅れて起動します。
そのための回避策はありますか?