2009-05-27 56 views
1

我有這個非常奇怪的錯誤。當我向下滾動我的表格視圖時,直到我稱爲「描述」的部分,本節中的單元格將不會顯示。相反,該部分的標題會一再重複。這聽起來像誰負責iPhone中的屏幕顯示沒有找到任何可顯示的東西,並讓屏幕上顯示的內容(這是該部分的標題,因爲我向下滾動)。設備中的奇怪錯誤:UITableView的單元格內容沒有顯示

如果我截取屏幕截圖,那就是黑色背景,而不是單元格。

這個錯誤在模擬器中沒有發生,但只在真實的設備中發生。

有沒有人遇到過這樣的事情?你能猜到問題在哪裏嗎?

回答

0

我找到了解決方案...很明顯,但仍然...

我的UILabel的尺寸大於2048像素。我們不允許使用比這更大的尺寸,這就是渲染非常奇怪的原因。

這個線程stackoverflow.com/questions/773386/inserting-various-views-into-uiscrollview已經處理了這個問題。

0

嘗試將單詞描述更改爲其他內容。 Objective C類使用單詞描述來表示一個對象可以用NSString描述自己的方法。如果更改名稱可以修復它,那麼您的bug就是與此相關的。

你可以看到在工作描述是這樣的:

NSString *aString = [[NSString alloc] initWithFormat:@"hi"]; 
NSLog(@"%@", [aString description]); 
+0

不錯的猜測,我試過但沒有改變任何東西... – Unfalkster 2009-05-27 14:45:00

0

謝謝您的回覆,我會在這裏把代碼。但請記住,我的代碼適用於所有其他單元格,因此它必須與此單元格的特定內容相關,但它只是UILabel中的一些文本...

請不要猶豫查看視頻我已經說過,這對iPhone來說是一種非常好奇的行爲,你甚至看到了嗎? dl.free.fr/rlQmFyWS0

這裏是的cellForRowAtIndexPath代碼:方法,只是說明細胞有關的部分:

case 3: // A big cell containing the description 
    { 
     // Try to find an already allocated cell with the description (note : there is only one description cell per table so no need to check the content...) 
     UITableViewCell * descriptionCell = [tableView dequeueReusableCellWithIdentifier:kTextCellIdentifier]; 
     if (descriptionCell == nil) { 
      // As a frame, use the description label's one plus a little margin for the height 
      descriptionCell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, self.descriptionText.frame.size.height + (2*kCellInset)) reuseIdentifier:kTextCellIdentifier] autorelease]; 
      descriptionCell.selectionStyle = UITableViewCellSelectionStyleNone; 
      // The descriptionText UILabel has been previously initialized properly by tableview:heightForRowAtIndexpath: method 
      [descriptionCell.contentView addSubview:self.descriptionText]; 
     } 
     return descriptionCell; 

這裏是我初始化descriptiontext描述場部分:

// Customize row height for each cell 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
if (indexPath.section == 3) { 
    CGSize realSize; 
    if (self.descriptionText != nil) { 
     // the description has been previously initialized 
     realSize = descriptionText.frame.size; 
    } 
    else { 
     // We need to dynamically resolve the height for the description zone 
     NSString * desc = (NSString *)[product objectForKey:@"description"]; 
     UILabel * descLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
     // Unlimited number of lines 
     descLabel.numberOfLines = 0; 
     descLabel.text = desc; 
     // Set a preferred width and anything for the height 
     realSize = [descLabel sizeThatFits:CGSizeMake(tableView.frame.size.width - (2*kCellInset), 1)]; 
     // Take the opportunity to set the frame with the correct values 
     descLabel.frame = CGRectMake(kCellInset, kCellInset, realSize.width, realSize.height); 
     self.descriptionText = descLabel; 
     [descLabel release]; 
    } 
    return (realSize.height + (2*kCellInset)); 
} 
else { 
    return kImageCellHeight; 
} 
return 0; 

}

任何猜測會更受歡迎......我一直在這裏調查

相關問題