UIProgressView没有在iPhone上显示但在模拟器中显示

时间:2011-08-11 19:22:54

标签: iphone objective-c xcode

我有一个名为UIProgressView的{​​{1}}我通过Interface Builder放置在我的View Controller上。在iOS模拟器上,progTimer显示正常,但是当我在iPhone上测试它时,它不会出现。

以下是修改它的代码。

UIProgressView

有什么想法吗?提前致谢。

3 个答案:

答案 0 :(得分:2)

ALL:出于某种原因,我将进度视图的样式更改为“Bar”,它显示正常。不知道是什么导致了最初的问题,但现在虽然有不同的样式栏,但它现在可以工作。

答案 1 :(得分:1)

我的猜测是,在设备上,扫描过程移动速度太快,以至于您无法看到它。要确保它在ProgressIncrease方法中使用ad和NSLog,以查看它扫描的速度。我的预加载通知程序出现了同样的问题,它在模拟器上显示但在设备上没有显示。

答案 2 :(得分:1)

你打电话给[自我扫描];这似乎是罪魁祸首。扫描操作运行多长时间?

非常重要的是要注意,虽然任何长时间运行的操作都在主线程(UI线程)中运行,但主线程循环中不会执行其他代码(直到长时间运行的操作完成),这意味着您的计时器功能甚至按下按下按钮一次按下将无法工作。您需要使用NSOperation和调度队列,或者创建一个线程并在后台运行扫描操作,并使用NSMachPort或NSObject performSelectr:OnThread:...等向主线程发送通知,以便更新进度条。

顺便说一句,扫描过程和进度条完全没有关系;理想情况下,进度条应更新已完成扫描的次数,这意味着扫描过程必须通知进度条,如果扫描在辅助线程中运行,也会在主线程中更新。