Xamarin.iOS 中的進度和活動指標
您的應用程式可能需要執行長時間執行的工作,例如載入或處理數據,而且此延遲可能會導致更新UI的延遲。 在此期間,您應該一律使用進度指示器,讓使用者放心系統正忙於執行工作。 這可讓使用者控制應用程式正在處理其要求、它未等候其輸入,而且可以提供詳細數據的方式,詳細說明他們必須等候的時間長度。
iOS 提供兩個主要方式,在您的應用程式中提供此進度指示:活動指標(包括特定 網路 活動指標)和進度列。
活動指示器
當您的應用程式執行長時間程式時,應該會顯示活動指標,但您不知道工作所需的確切時間長度。
Apple 有下列使用活動指標的建議:
- 如果可能的話,請改 用進度列 - 因為活動指標為使用者提供執行程式所花費的時間沒有意見反應,因此,如果知道長度,請一律使用進度列(例如,檔案中要下載多少個字節)。
- 讓指標保持動畫 - 使用者將靜止活動指標與停滯的應用程式產生關聯,因此您應該一律在顯示指標時以動畫顯示。
- 描述正在處理 的工作 - 只顯示活動指標本身是不夠的,用戶必須知道他們正在等候的程式。 包含有意義的標籤(通常是單一完整句子),以清楚定義工作。
實作活動指標
活動指標是透過 UIActivityIndictorView
類別實作,以指出 UIActivity
正在發生 。
管理活動指標行為
StartAnimating()
使用和 StopAnimating()
方法來啟動和停止活動指標動畫。
將 HidesWhenStopped
屬性設定為 true
,讓活動指標在呼叫之後 StopAnimating()
消失。 預設會設定為 true
。 您可以隨時查看活動指標是否正在執行其旋轉動畫,方法是檢查 IsAnimating
屬性。
管理活動指標外觀
列舉 UIActivityIndicatorViewStyle
可以在具現化活動指標時傳遞為參數。 您可以使用這個選項,將視覺樣式設定為 Gray
、 White
或 WhiteLarge
,例如:
activitySpinner = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge);
您可以藉由 UIActivityIndicatorViewStyle
設定 Color
屬性來覆寫所提供的色彩。
進度列
進度列會顯示為填滿色彩的線條,以指出耗時工作的狀態和長度。 當知道或可以計算工作的長度時,應該一律使用進度列。
Apple 有下列使用進度列的建議:
- 正確報告進度 - 進度列應一律是完成工作所需時間的準確表示法。 永遠不要歪曲讓應用程式看起來忙碌的時間。
- 用於定義完善的工期 - 進度列不僅應該顯示正在執行冗長的任務,而且會提供使用者和指示已完成多少任務,以及剩餘時間的估計。
實作進度列
藉由具現化 來建立進度列 UIProgressView
進度列和分鏡腳本
您也可以在使用 iOS 設計工具時,將進度列新增至 UI。 在 [工具箱] 中搜尋進度檢視,並將其拖曳至您的檢視。
您可以在屬性面板上調整下列屬性:
管理進度列行為
一開始可以使用 屬性來設定 Progress
列的進度:
ProgressBar.Progress = 0f;
如果您想要讓變更變成動畫,則可以使用 SetProgress
方法來調整進度,並傳遞布爾值宣告。
ProgressBar.SetProgress(1.0f, true);
如需使用進度列的詳細資訊,請參閱 報告進度 配方。
管理進度列外觀
類似於活動指標, UIProgressViewStyle
列舉可以在具現化進度列時傳遞為參數。
您可以使用下列屬性來調整 [進度] 和 [追蹤影像] 和 [色調色彩]:
progressBar = new UIProgressView(UIProgressViewStyle.Default)
{
ProgressImage = UIImage.FromBundle("TrackImage"),
ProgressTintColor = UIColor.Cyan,
TrackImage = UIImage.FromBundle("TrackImage"),
TrackTintColor = UIColor.Magenta
};