簡體   English   中英

progressView不起作用

[英]progressView doesn't work

我想在啟動應用程序時(帶有啟動屏幕)顯示一個progressView,因此,在appDelegate .h文件中,我聲明了progressView:

UIProgressView *progView;

appDelegate .m文件中,我這樣做:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    sleep(1);



    progView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleBar];
    progView.progress = 0.75f;


// the rest..
}

我沒有在初始屏幕中看到進度欄,請提前幫助,謝謝:)

您不能影響啟動屏幕本身,它只是靜態圖像。

但是,您可以做的是讓您的應用加載,直到收到委托消息,然后啟動一些基本的UI,以顯示進度視圖,然后在后台線程中執行一些繁重的啟動過程,並相應地更新進度條。 線程完成工作后,請返回主線程以啟動實際應用程序。

編輯 :更新了我的答案以澄清一些事情

iOS中的應用程序啟動基本上分為兩個階段。

  1. 操作系統啟動您的應用程序,該應用程序設置基本內容,啟動運行循環等。在此期間,顯示初始屏幕。 在此階段,應用程序不受程序員的控制。
  2. -application:didFinishLaunchingWithOptions被調用。 在這種方法中,您作為程序員可能會執行一些啟動任務,例如加載數據庫,連接到某些服務等。在此階段,您可以影響用戶界面並顯示例如進度條。 如果需要執行此操作,請創建一個后台線程並在那里進行設置。

注意:如果僅將進度條放在UI上,然后在-application:didFinishLaunchingWithOptions:方法中做一些事情,則不會起作用,因為直到返回此方法才會顯示UI。 這就是為什么您需要在后台線程中進行設置。

是progView的所有代碼嗎? 因為您還沒有將其添加為子視圖,所以您將如何看到它呢? 您需要類似:

[splashView addSubview:progView];

frenetisch對IOS應用程序的啟動過程給出了一些合理的解釋,但是聽起來您需要對此做一些基本的研究。 通常,調用didFinishLaunchingWithOptions所需的時間很少,因此可以顯示第一個視圖。 但是,在您的應用程序實際可用之前,您需要做什么? 您想要顯示進度視圖,因此必須進行一些計划,這需要一些時間。 這是正在進行的事情,您需要顯示進度視圖並以某種方式更新進度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM