Iphone 在iOS中减慢计算速度。

Iphone 在iOS中减慢计算速度。,iphone,objective-c,xcode,Iphone,Objective C,Xcode,不确定这是否可行,或者是否推荐,但是,我有一个iPhone应用程序,可以根据用户的年龄、身高和体重进行计算。当我点击我的calculate(计算)按钮时,结果输出是立即的,因为计算被执行,并且我的UILabel被即时填充 是否可以减慢速度并在查看时发出“正在计算”警报,然后填充标签?您可以创建一个简单的NSTimer,然后在应用程序中使用UIActivityIndicatorView(例如)在视图中显示“正在加载/计算”进度(甚至将其放在UIAlertView中),然后,一旦计时器完成,揭开计算

不确定这是否可行,或者是否推荐,但是,我有一个iPhone应用程序,可以根据用户的年龄、身高和体重进行计算。当我点击我的calculate(计算)按钮时,结果输出是立即的,因为计算被执行,并且我的UILabel被即时填充


是否可以减慢速度并在查看时发出“正在计算”警报,然后填充标签?

您可以创建一个简单的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];

你可以告诉它停止设置动画并从主视图中隐藏它,但这样我们就可以删除它,就好像用户拒绝了它一样。。。更简单。

您可以创建一个简单的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];

你可以告诉它停止设置动画并从主视图中隐藏它,但这样我们就可以删除它,就好像用户拒绝了它一样。。。更简单。

单击按钮后,显示加载警报并执行以下操作:

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

- (void)calculate {
//do your calulation and update the result label
}

单击按钮后,显示加载警报并执行以下操作:

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

- (void)calculate {
//do your calulation and update the result label
}

我已经很久没有听到有人抱怨代码性能太高了。这不是抱怨,更多的是幻想。我个人喜欢屏幕提示的外观和体验。我只是想知道这是否有可能。当你可以观看进度条5秒钟时,为什么要马上给他们答案?这可能会导致一些人放弃他们的手机:“天哪,它甚至不能做像体重指数这样简单的计算!”我还没有放弃任何我自己的设备,它告诉我它正在做一些事情并吸引我。如果你觉得这个问题更合适,那么就把它当作一个理论和奇迹,而不是现实世界中的实际实施取决于它在做什么。我相信你可以在你的理论世界中添加一个线程、睡眠和进度条。我很久没有听到有人抱怨代码性能太高了。这不是抱怨,更多的是想象的漫游。我个人喜欢屏幕提示的外观和体验。我只是想知道这是否有可能。当你可以观看进度条5秒钟时,为什么要马上给他们答案?这可能会导致一些人放弃他们的手机:“天哪,它甚至不能做像体重指数这样简单的计算!”我还没有放弃任何我自己的设备,它告诉我它正在做一些事情并吸引我。如果你觉得这个问题更合适,那么就把它当作一个理论和奇迹,而不是现实世界中的实际实施取决于它在做什么。我相信你可以在你的理论世界里添加一个线程。睡眠和进度条。谢谢卢克。我会调查的,汉克斯·卢克。我会调查伊托克,看起来会有效果的谢谢好的,看起来会有效果的谢谢