Tôi có một ứng dụng có đồng hồ đếm ngược. Tôi đã thực hiện nó với một nhãn được cập nhật với một chức năng gọi từ một bộ đếm thời gian theo cách này:NSTimer không hoạt động khi đang kéo UITableView
...
int timeCount = 300; // Time in seconds
...
NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(actualizarTiempo:) userInfo:nil repeats:YES];
...
- (void)actualizaTiempo:(NSTimer *)timer {
timeCount -= 1;
if (timeCount <= 0) {
[timer invalidate];
} else {
[labelTime setText:[self formatTime:timeCount]];
}
}
Lưu ý: formatTime là một chức năng mà nhận được một số nguyên (số giây) và trả về một NSString với định dạng mm : ss
Mọi thứ hoạt động ok, tức là thời gian đếm ngược nhưng vấn đề là tôi có UITableView trong ứng dụng và nếu tôi chạm vào bảng và kéo nó (để di chuyển dọc theo ô) thì bộ đếm thời gian dừng lại cho đến khi tôi thả ngón tay của tôi ra khỏi màn hình ...
Hành vi này có bình thường không? Nếu có, có cách nào để tránh nó và làm cho bộ đếm thời gian làm việc trong khi kéo bảng?
Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn, nó hoạt động với giải pháp này. Tôi sẽ xem xét kỹ hơn về các chế độ vòng lặp để có được sự phù hợp hơn với các sự kiện của tôi – rai212
đừng quên '[timer invalidate];' on 'viewWillDisappear' hoặc bất kỳ phương thức nào khác hoặc bạn sẽ kích hoạt bộ đếm thời gian lặp đi lặp lại . – skornos