2010-02-07 51 views
1

我可以通過使用Interface Builder如下所示在UIWindow或UIView上放置UIActivityIndi​​catorView。
alt text http://img.f.hatena.ne.jp/images/fotolife/t/tomute/20100207/20100207004841.png
但是我不能通過使用Interface Builder在UITableView上放置UIActivityIndi​​catorView。
是什麼原因?有什麼方法嗎?
我可以以編程方式將它放在UITableView上。
alt text http://img.f.hatena.ne.jp/images/fotolife/t/tomute/20100207/20100207005325.png爲什麼我無法通過使用Interface Builder將UIActivityIndi​​catorView放置在UITableView上?

回答

2

讓父母UIViewUITableViewUIActivityIndicatorView兩個子視圖。然後,您可以將指標視圖放置在表視圖上。

+0

謝謝你的回答。但是,我已經知道當我將UITableView作爲UIView的子視圖時,我可以做到這一點。事實上,UITableView是UIView的子類,所以爲什麼我不能通過Interface Builder使UIActivityView成爲UITableView的子視圖呢? – tomute 2010-02-07 08:11:59

+0

你可以以編程方式將活動指標插入到表視圖的超級視圖中,但我不確定如何使用IB來完成此操作。解決這個問題的標準方法是將這兩個視圖都變爲父視圖的子視圖。如果您認爲這是一個錯誤,您可以在http://bugreporter.apple.com上提交報告。 – 2010-02-07 08:33:26

+0

您是對的。我總是以編程方式插入指標。要添加一個父UIView是解決這個問題的另一種方法,但我個人不喜歡爲了使用該指標而添加一個無意義的UIView。 – tomute 2010-02-07 08:51:13

1

原因是因爲UITableView希望負責其所有子視圖的所有佈局用途。 IB不讓你在UITableView中放置子視圖,因爲雖然它在技術上可能是但它不是支持

在任何情況下,活動指示器都會隨表格向上和向下滾動,因此即使您將表格向下滾動時將其添加到正確的位置,如果您不小心將其從屏幕上滾動關於在指示器顯示時禁用用戶交互。

當我需要在屏幕上顯示一般性活動指標時,我使用自己的UIProgressHUD版本。 UIProgressHUD是一個私人內部類,所以我不使用它,我只是自己做了同樣的事情。它以50%的不透明度和圓角顯示黑色背景,併爲其添加進度指示器和可選的標籤,然後將該視圖添加到主窗口。因此,不需要另一個UIView來封裝兩者,而且你不會將它放在表中,這是不支持的(除非你把它放在表視圖中的一個單元內)。

+1

謝謝你的回答。但是,事實上,如果我以編程方式將活動指示器添加到UITableVIew作爲子視圖,則完全沒問題。 (例如[self.tableView addSubview:indicator];)。活動指示符不會與表格上下滾動。 – tomute 2010-02-07 21:29:41

相關問題