iOSのGoogleマップに問題があります。MapView の画面があり、いくつかの注釈 (通りのゾーンを表示するポリゴン) を描画しています。誰かがゾーンをタップすると、選択されたボタンが表示され、ユーザーはそれを押してトランザクションを開始できます。彼はボタンを 2 秒間押し続ける必要があり、この間、進行状況バーを含む小さなビューが表示され、ユーザーがボタンを最後まで押し続ける必要があることを示します。これはうまくいきます。ただし、少しプレイした後、次の問題が発生することがあります。
プログレスバーのあるビューが表示されますが、最後に到達する前に消えます。次回試してみると、すべてがスムーズに機能します。重要なコードは次のとおりです。
- (IBAction)starButtonTouched:(id)sender {
self.progressLabel.text = [NSLocalizedString(@"Please hold", nil) uppercaseString];
if (!self.currentVehicle) return;
self.progressBar.hidden = NO;
self.progressBarBackground.hidden = NO;
self.progressBar.progress = 0;
[self performSelector:@selector(_updateProgress) withObject:nil afterDelay:kVTMainButtonPressDuration/kVTMainProgressSteps];
}
- (IBAction)startButtonReleased:(id)sender {
NSLog(@"StartButton released - progress bar will be hidden");
self.progressBar.hidden = YES;
self.progressBarBackground.hidden = YES;
}
- (void) _updateProgress {
if (self.progressBar.hidden) return;
/*
* update progress bar
*/
float actual = [self.progressBar progress];
if (actual < 1) {
self.progressBar.progress += 1.0/kVTMainProgressSteps;
[NSTimer scheduledTimerWithTimeInterval:kVTMainButtonPressDuration/kVTMainProgressSteps target:self
selector:@selector(_updateProgress) userInfo:nil repeats:NO];
/*
* if it has ended start the transaction
*/
} else {
ASLogInfo(@"Starting");
if (!self.currentVehicle) return;
[self.service startParking:self.currentVehicle zone:self.selectedZone callback:^(VTTransaction *transaction) {
[self loadCurrentTransaction];
}];
}
}
ビューが消える原因と理由を知っている人はいますか? どうもありがとう。
さようなら、フィリップ