в моем приложении Я загружаю изображение на сервер. Я использую этот метод https://stackoverflow.com/a/22301164/1551588. Он работает нормально, но я хотел бы добавить индикатор прогресса в этот метод. Возможно? sendAsynchronousRequest
можно сделать? Спасибо за ответ.Загрузите асинхронное изображение с успехом
0
A
ответ
1
Похоже, что невозможно получить значение прогресса в iOS.
Но на этом я нашел довольно обход, который в основном обманывает, но визуально он выполняет эту работу.
Вы заполняете индикатор прогресса, и в конце вы убедитесь, что он заполнен.
оригинальный ответ UIWebView with Progress Bar
код с улучшениями:
#pragma mark - Progress View
Boolean finish = false;
NSTimer *myTimer;
-(void)startProgressView{
_progressView.hidden = false;
_progressView.progress = 0;
finish = false;
//0.01667 is roughly 1/60, so it will update at 60 FPS
myTimer = [NSTimer scheduledTimerWithTimeInterval:0.01667 target:self selector:@selector(timerCallback) userInfo:nil repeats:YES];
}
-(void)stopProgressView {
finish = true;
_progressView.hidden = true;
}
-(void)timerCallback {
if (finish) {
if (_progressView.progress >= 1) {
_progressView.hidden = true;
[myTimer invalidate];
}
else {
_progressView.progress += 0.1;
}
}
else {
_progressView.progress += 0.00125;
if (_progressView.progress >= 0.95) {
_progressView.progress = 0.95;
}
}
//NSLog(@"p %f",_progressView.progress);
}
Вот как его использовать:
первый вызов (очевидно), где вам нужно
[self startProgressView];
, а затем в делегате
#pragma mark - NSURLConnection Delegate Methods
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"Loaded");
[self stopProgressView];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"Error %@", [error description]);
[self stopProgressView];
}
`` `
вы преобразование изображения в базу 64 строки перед загрузкой? – Logic