2013-01-17 113 views
0

當我將自定義控件添加到UITableViewCell時(通過將UILabel拖動到故事板中的表格單元格中),內容在運行時不可見。當我點擊表格行(選擇它)時,內容出現,但是白色。UITableViewCell,隱藏自定義內容

項目設置:(概要:創建一個UITableView和幾行代碼超級最小的故事板項目創建內容):

新項目,單一視圖的應用程序時,Xcode 4.5.2,用故事板。這創建了一個針對iOS 6的項目。

將一個表視圖控制器拖到storyboard上,它創建一個視圖,它包含的UITableView以及該表內的默認UITableViewCell。

將我的表視圖控制器設置爲初始場景。

爲UITableViewCell(在故事板編輯器中)設置重用標識符字符串。

創建一個新文件,UITableView的子類,填充一些最低股票數據的東西,以獲得幾行填充「行XX」數據文本。

運行項目。數據按預期顯示,幾行數據說「行0」,「行1」等。沒有問題

現在,我將標籤拖放到故事板中的表格單元格中。我對這些屬性沒有任何改變。我留下標籤文字,用黑色字母標註「標籤」。 http://www.codexlumen.com/issue/storyboard.png

運行項目再次:在

查看圖像。

我期望的是:我的表格行現在有「標籤」出現在行中,以黑色文本顯示。

我實際看到的:與以前完全一樣。根本沒有出現「標籤」文本。

現在,這裏是最有趣的部分:

仍然在運行,我點擊一個錶行來選擇它。現在該行以藍色點亮,「Label」出現在的白色處,位於放置標籤控件的位置。

見圖片在:http://www.codexlumen.com/issue/hilight.png

所以的UILabel是存在的,它只是沒有得到繪製在非加亮後的行...

不知道爲什麼。

一些其他意見:

  • 我沒有使用任何類型的自定義表格單元格的子類。
  • 我沒有添加任何東西到項目中,或採取上面沒有提到的任何步驟。
  • 我沒有改變,除非設置爲重複使用標識字符串到的UILabel拖到細胞
  • 我試圖在我的4S同時運行和詮釋,他的模擬器(用模擬器集故事板的UITableView的或的UITableViewCell對象的屬性到各種設備/操作系統配置)
  • 我試過改變標籤屬性(黑色背景,綠色文本等)。沒有效果。視覺行爲是相同不管我設置什麼樣的屬性(儘管「標籤」是更大的,如果我放大文本)

這是100點%的故事板。我在代碼中沒有創建UI對象。 UI中代碼的唯一參考是填充表格單元的代碼,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"MyCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

    cell.textLabel.text = [NSString stringWithFormat:@"Line %i", indexPath.row]; 

    return cell; 
} 

回答

2

我看到您的問題。您在使用自定義單元格時訪問標準UITableViewCell(即cell.textLabel)的屬性。只要殺死第三條線就可以看到差異。我建議你爲你需要的每個標籤創建自己的網點,而不是使用標準網點。

+0

耶......我明白了。我從來沒有在創建自定義單元格時使用庫存內容,這就是爲什麼它一直在過去的項目中工作的原因......您100%正確:UITableViewCell標籤控件*是任何自定義內容的頂部。如果我將UILabel移動到單元格的邊緣,我可以看到它從UITableViewCell提供的cell.textLabel後面窺視。 - >這會教會我快速準確地打印庫存內容,然後嘗試自定義而不刪除庫存內容! –

+2

爲了完成這個想法:如果你沒有爲UITableViewCell提供的UILabels設置任何文本,它們要麼縮小到零大小,要麼根本不會被添加到視圖中(不知道哪個)...讓自定義UI控件可見。如果你爲它們設置文本,它們是不透明的,隱藏你的自定義控件。 –

+0

「UITableView」及其系列類是iOS中最神祕的事情,人們永遠無法確定。 –