我有這個非常奇怪的錯誤。當我向下滾動我的表格視圖時,直到我稱爲「描述」的部分,本節中的單元格將不會顯示。相反,該部分的標題會一再重複。這聽起來像誰負責iPhone中的屏幕顯示沒有找到任何可顯示的東西,並讓屏幕上顯示的內容(這是該部分的標題,因爲我向下滾動)。設備中的奇怪錯誤:UITableView的單元格內容沒有顯示
如果我截取屏幕截圖,那就是黑色背景,而不是單元格。
這個錯誤在模擬器中沒有發生,但只在真實的設備中發生。
有沒有人遇到過這樣的事情?你能猜到問題在哪裏嗎?
我有這個非常奇怪的錯誤。當我向下滾動我的表格視圖時,直到我稱爲「描述」的部分,本節中的單元格將不會顯示。相反,該部分的標題會一再重複。這聽起來像誰負責iPhone中的屏幕顯示沒有找到任何可顯示的東西,並讓屏幕上顯示的內容(這是該部分的標題,因爲我向下滾動)。設備中的奇怪錯誤:UITableView的單元格內容沒有顯示
如果我截取屏幕截圖,那就是黑色背景,而不是單元格。
這個錯誤在模擬器中沒有發生,但只在真實的設備中發生。
有沒有人遇到過這樣的事情?你能猜到問題在哪裏嗎?
我找到了解決方案...很明顯,但仍然...
我的UILabel的尺寸大於2048像素。我們不允許使用比這更大的尺寸,這就是渲染非常奇怪的原因。
這個線程stackoverflow.com/questions/773386/inserting-various-views-into-uiscrollview已經處理了這個問題。
嘗試將單詞描述更改爲其他內容。 Objective C類使用單詞描述來表示一個對象可以用NSString描述自己的方法。如果更改名稱可以修復它,那麼您的bug就是與此相關的。
你可以看到在工作描述是這樣的:
NSString *aString = [[NSString alloc] initWithFormat:@"hi"];
NSLog(@"%@", [aString description]);
謝謝您的回覆,我會在這裏把代碼。但請記住,我的代碼適用於所有其他單元格,因此它必須與此單元格的特定內容相關,但它只是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;
}
任何猜測會更受歡迎......我一直在這裏調查
不錯的猜測,我試過但沒有改變任何東西... – Unfalkster 2009-05-27 14:45:00