2015-08-08 26 views
0

我已經使用故事板中的一個簡單原型單元格爲我的表視圖添加標題視圖。我在單元格中添加了一些標籤,併爲每個標籤賦予了特定的標籤,但在訪問它時返回了[cell viewWithTag:]方法的無值(我沒有爲單元格創建自定義類)我正在使用以下方法UITableViewCell for headerview不加載故事板的子視圖

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UITableViewCell * headerView = [tableView dequeueReusableCellWithIdentifier:@"HeaderView"]; 

    UILabel * lblVenueName = (UILabel *)[headerView viewWithTag:100]; 
    lblVenueName.text = @"Test Venue"; 

    return headerView; 
} 

對於上面的代碼,lblVenueName的值總是返回nil。

+0

您必須檢查'dequeueReusableCellWithIdentifier'是否返回一個對象,或者是否必須創建一個新對象。 –

回答

0

我跑進了XCode 7.0測試版5(7A176x)這個問題。我想這是一個錯誤。我檢查了調試器,結果發現cellView在運行時沒有任何子視圖。 如果您正在設計某種特定的屏幕尺寸,則此解決方法可能對您有所幫助。切換到基本價值觀是這樣的: Screen size checking screenshot

然後在屬性檢查器檢查兩個「已安裝」選項,在您需要的所有看法和他們的superviews檢查(例如在原型細胞,表視圖各方意見,這是上海華盈):

Screenshot of "installed" options

之後,你可以回到你的具體的屏幕尺寸和viewWithTag()將返回正確的值。

+0

非常感謝,它真的適合我 – user3417374

0

(ID)dequeueReusableCellWithIdentifier:(的NSString *)標識符

返回值

一個UITableViewCell對象與相關聯的標識符或零,如果沒有這樣的對象中可重複使用的單元隊列存在。

所以我猜這個方法返回nil爲你:)嘗試一個版本,需要一個indexPath :)

+0

其實我從dequeueReusableCellWithIdentifier:方法得到HeaderView的對象,但[headerView viewWithTag:100]返回了我的nil標籤。 – user3417374

+0

你可以打印headerView的視圖層次結構嗎? :) – sloik

+0

你可以輸入控制檯: 'po [headerView recursiveDescription]' – sloik

相關問題