Замедлите расчет в iOS. - PullRequest
0 голосов
/ 29 июля 2011

Не уверен, если это возможно, или рекомендуется, однако у меня есть приложение для iPhone, которое выполняет вычисления на основе возраста, роста и веса моих пользователей.Когда я нажимаю кнопку «Рассчитать», результирующий вывод выполняется немедленно, поскольку выполняется вычисление, и моя UILabel заполняется мгновенно.

Можно ли замедлить это и дать «расчет» на оповещение о представлении, а затем заполнить метку?

Ответы [ 2 ]

2 голосов
/ 29 июля 2011

Когда нажата ваша кнопка, отобразите предупреждение о загрузке и сделайте следующее:

[self performSelector:@selector(calculate) withObject:nil afterDelay:1];

- (void)calculate {
//do your calulation and update the result label
}
2 голосов
/ 29 июля 2011

Вы можете создать простой NSTimer, который будет запущен, а затем использовать UIActivityIndicatorView (например), чтобы показать прогресс «загрузки / расчета» внутри представления (или даже поместить его в UIAlertView) в вашем приложении, а затем один раз таймер завершен, откройте вычисленную метку.

Надеюсь, это поможет:)

-

Редактировать; добавлен пример кода

spinnerAlertView = [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"My App Name", @"") message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil] autorelease]; // member
spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)]; // member
spinner.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[spinnerAlertView addSubview: spinner];
[spinner startAnimating];
[spinnerAlertView show];

Затем, когда вычисление будет завершено, не забудьте сделать это:

[spinnerAlertView dismissWithClickedButtonIndex:0 animated:TRUE];

Вы можете сказать, чтобы оно прекратило анимацию и скрыло его от основного вида, но таким образом мы просто удалим его, как если бы пользователь отклонил его ... намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...