0

在我的应用程序中,我的一个视图的加载时间比正常情况要长(它是一个包含许多图片的滚动视图),所以我想我会让用户知道在加载视图时发生了什么。所以我放了一个进度条,它使用计时器来显示通常需要多长时间加载。唯一的问题是,当按钮被触摸时,iPhone 仍会加载视图,然后当新视图打开时,会出现进度条并启动计时器。如何设置它,以便进度条将显示在与按钮相同的视图上,并且当按下按钮时加载第二个视图,当进度条填满时,它会转到第二个视图。这是我到目前为止的代码。

- (无效)按钮
{{

if (!self.baseSheet) { baseSheet = [[UIActionSheet alloc] initWithTitle:@"Please Wait" delegate:self cancelButtonTitle:nil destructiveButtonTitle: nil otherButtonTitles: nil]; [baseSheet setNumberOfRows:5]; [baseSheet setMessage:@"Loading Photos"]; UIProgressView *progbar = [[UIProgressView alloc] initWithFrame:CGRectMake(50.0f, 70.0f, 220.0f, 90.0f)]; progbar.tag = PROGRESS_BAR; [progbar setProgressViewStyle: UIProgressViewStyleDefault]; [baseSheet addSubview:progbar]; [progbar release]; } UIProgressView *progbar = (UIProgressView *)[self.view viewWithTag:PROGRESS_BAR]; [progbar setProgress:(amountDone = 0.0f)]; [NSTimer scheduledTimerWithTimeInterval: 0.5 target: self selector: @selector(incrementBar:) userInfo: nil repeats: YES]; [baseSheet showInView:self.view]; [[self navigationController] pushViewController:[[ScrollViewController alloc] init] animated:YES];

} }

4

1 回答 1

0

您是否尝试过将进度条例程放入一个完全独立的方法中?

有时我也会遇到方法中某些例程的执行速度问题——尤其是与 UIView/UIImageView 相关的更改。有时,某些与视图相关的例程的更改实际上在屏幕上的更新速度比在它们实际发生之前执行的内容要快。我发现我通常可以通过将显示视图更改太晚的例程放入一个完全独立的方法中并在 BEFORE 调用该方法来纠正此问题。

于 2009-05-25T06:49:20.393 回答