我正在使用一種類型的自定義表格視圖單元格,但是當其他數據發佈到我的表格視圖時,我希望它顯示在不同的自定義表格視圖單元格中同一張桌子。在同一個表視圖中使用兩個不同的自定義表格單元格
例如,我在我的表格視圖中創建了一個聊天。但是,當發佈某些細節時,我想要一個單獨的單元設計來顯示這些細節。到目前爲止,請參閱我的代碼。
我的問題:我怎麼能寫,「如果field_swaptime在self.messages是空的,顯示ChatTableViewCell - 如果它包含數據,顯示SwapDetailTableViewCell」?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ChatTableIdentifier = @"ChatTableViewCell";
static NSString *ChatTableIdentifier2 = @"SwapDetailTableViewCell";
NSDictionary *data = [self.messages objectAtIndex:indexPath.row];
if ([data objectForKey:@"field_swaptime"] == nil) {
NSLog(@"THIS IS DATA %@", data);
ChatTableViewCell *cell = (ChatTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ChatTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ChatTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
NSString *userName = [data objectForKey:@"name"];
[cell.sendingUser setText:userName];
NSString *messageBody = [data objectForKey:@"body"];
[cell.messageDisplayed setText:messageBody];
NSString *timeReceived = [data objectForKey:@"published at"];
NSLog(@"Message Received at %@", timeReceived);
[cell.timeStamp setText:timeReceived];
return cell;
}
else {
SwapDetailTableViewCell *cell = (SwapDetailTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ChatTableIdentifier2];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SwapDetailTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
NSString *Time = [data objectForKey:@"field_swaptime"];
NSLog(@"This is time %@", Time);
[cell.startTime setText:Time];
NSString *TimeEnd = [data objectForKey:@"field_endswaptime"];
[cell.endTime setText:TimeEnd];
return cell;
}
}
好的1 - 你搖滾發佈這個答案。哈哈。 2)你能解釋一下這一行是什麼意思:if(!data ||![data objectForKey:@「field_swaptime」]){例如是 - 「如果self.messages中的field_swaptime是,則顯示ChatTableViewCell」?我實現了你的代碼,它似乎甚至在數據發佈到field_swaptime之後使用ChatTableViewCell?如果數據發佈時沒有使用field_swaptime,那麼該表應該添加ChatTableViewCell,並且如果field_swaptime存在,則使用SwapDetailTableViewCell(因此,我應該在我的表中看到兩個diff單元格設計)? –
E.g.我不希望整個表格使用同一單元格 - 我應該有一個表格顯示兩種不同的單元格設計,不是嗎? –
是的,正確的。 if是說「如果沒有數據字典(因爲self.messages爲零),或沒有與」field_swaptime「鍵相關的值,則顯示一個ChatTableViewCell,否則顯示一個SwapDetailTableViewCell」 – gschandler