2013-10-01 81 views
0

我有一個典型的Master-Detail佈局,在我的MasterViewController中有一個UITableView。在滾動的頂部放置一個靜態UILabel UITableView

在我的XIB中,我在UITableView上放置了一個UILabel。

我打算使用此標籤來通知用戶他/她的搜索條件不會產生任何結果,因此e在表中沒有行。根據數據我會顯示/隱藏這個標籤。

我有一個UIView作爲我的UITableView和我的UILabel的容器。

爲什麼當我運行我的應用程序時,無處可查找標籤,以及爲什麼在設計器中單擊我的標籤(或表格)時,單擊編輯器 - >安排,所有的選項都變灰了嗎?

XCODE SCREENSHOT

商祺!

+0

是你的正確的順序子視圖?最前面的是最高的名單? – nielsbot

+0

正如你在屏幕截圖中看到的,我的表格視圖在我的標籤之前,在你的問題之後,我嘗試了另一種方式,沒有任何成功。 –

+0

你使用的是UITableViewController而不是UIViewController嗎? – mmackh

回答

1

您無法通過界面構建​​器將子視圖添加到UITableViewController。你應該嘗試使用UIViewController。要複製UITableViewControllers好處,你可以添加以下到 - viewDidLoad方法(因此防止神經質UIRefreshControls等)

UITableViewController *tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 
[tableViewController setTableView:self.tableView]; 

編輯:

這個工程100%。唯一的解釋是你將標籤拖入TableView而不是它的超級視圖。我創建了一個新的應用程序,這裏的層次應該是什麼樣子:

注意標籤是如何明顯的在線下面的實現代碼如下?下面是模擬器將輸出:

希望有所幫助。

+0

我將我的MasterViewController.h從UITableViewController更改爲UIViewController,並修復了它在我的init中導致的一個錯誤,但不幸的是我仍然沒有看到標籤。 –

+0

在你的視圖加載方法中,試着將你的標籤放在前面'''[self.view bringSubviewToFront:self.label];''' – mmackh

+0

仍然沒有看到標籤。我想過在一個新項目上嘗試它,但現在我看到XCode 5迫使我使用故事板,而我從未與StoryBoards合作過。我必須錯過簡單的事情...... –

1

UITableView具有tableHeaderViewtableFooterView特性。

可以解決以下方式您的問題:self.tableView.tableHeaderView = label;

+0

是的,但它並不總是可見的,即它在滾動時消失。 – mmackh

+1

謝謝Sviatoslav Yakymiv,這的確的工作,它不是我想要的(正如mmackh提到的),但正如我在我的原始問題中提到的那樣,只有當表格不能顯示任何數據時才需要顯示此標籤,將是「你的搜索沒有結果」。但是,我仍然想了解爲什麼我不能將靜態控件放置在UITableView頂部的UIView中。 –

相關問題