#iphone #email #background #smtp #uiprogressview
#iPhone #Адрес электронной почты #предыстория #smtp #uiprogressview
Вопрос:
Я использую эту библиотеку (http://code.google.com/p/skpsmtpmessage /) для отправки электронной почты в моем приложении для iPhone
как я мог бы реализовать UIProgressView во время отправки?
спасибо за любую помощь!
Ответ №1:
-
1. Создайте свой UIProgressView в вашем .h вместе с BOOL и NSTimer и функцией, вызывающей его UpdateProgress
2. Синтезируйте в своем файле .m
3.In ваш «viewDidLoad» устанавливает начальное значение BOOL равным NO и создает таймер
Ваш файл .h должен содержать
UIProgressView * progressView;
BOOL emailSent;
NSTimer * timer;
-(void)updateProgress;
@property(nonatomic, retain)UIProgressView * progressView;
@property(nonatomic, assign)BOOL emailSent;
@property(nonatomic, retain)NSTimer * timer;
Ваш файл .m должен содержать
@synthesize progressView, emailSent,timer;
//viewdidload
//set initial value to no
emailSent = NO;
//since we cant interact with UIElements on anything but the Main thread we use a timer
//because you are probably sending the email in a seperate thread
timer= [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(updateProgress) userInfo:nil repeats:YES];
//create this function
-(void)updateProgress{
//wait for email to be done
if (emailSent == NO) {
// you'll have to tweak this area to get the correct data "progress"
float fullValue = .0032;
int progressInt = (app.parsedCount * z);
//progressInt is the representation of how much data has been completed.
progressView.progress = progressInt;
}
else {
//email is done
emailSent = YES;
//kill the timer so it doesnt continue to run
[timer invalidate];
//email sent so you can remove your progress view
[self.view removeSubView:progressView];
}
}
Удачного кодирования!
Комментарии:
1. хорошо .. но моя проблема в том, что вы говорите «вам придется настроить эту область, чтобы получить правильные данные «прогресс»» большое вам спасибо на самом деле 😉
2. @Louie: То, что упомянул Джанки, было бы также очень интересно для меня! Я имею в виду, я знаю, приблизительно размер почты, но не совсем, сколько в данный момент отправляется (при отправке электронного письма через класс)! Я действительно не хочу редактировать класс SKPSMTPMessage, чтобы получить текущее состояние выполнения, но я думаю, это единственный выбор, верно? Это с таймером на самом деле хороший момент, твой, кстати!