Ho tre UILabel personalizzate in UITableViewCell. Il disegno cellule simili,Modifica l'altezza di UITableviewCell in modo dinamico in iPhone?
Date(12.1.2012) Time(12.00pm)
Cost: $20.00
Details
ho specificato l'altezza di riga 100 in - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
. Ma ora i dettagli alcune volte ritornano vuoti (Null) dal server. In quel momento ho bisogno di rimuovere l'etichetta Dettagli dalla cella e modificare la particolare altezza della cella (riga) a 70. Come posso fare questo? Ho cercato il mio livello migliore in Google. Ma, ho ancora solo confuso per fare questo. Potete per favore aiutarmi? Grazie. Ho avuto qualche idea da questo link - http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/
. Hanno usato solo un'etichetta per ridimensionare l'altezza della riga. Mi aiuti per favore.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 90;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UILabel *dateLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 100, 30)];
dateLabel.tag = 100;
dateLabel.backgroundColor = [UIColor clearColor];
dateLabel.font = [UIFont fontWithName:@"Helvetica" size:16];
dateLabel.font = [UIFont boldSystemFontOfSize:16];
dateLabel.highlightedTextColor = [UIColor whiteColor];
[cell.contentView addSubview: dateLabel];
UILabel *timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 0, 200, 25)];
timeLabel.tag = 101;
timeLabel.backgroundColor = [UIColor clearColor];
timeLabel.font = [UIFont fontWithName:@"Helvetica" size:14];
timeLabel.highlightedTextColor = [UIColor whiteColor];
[cell.contentView addSubview: timeLabel];
UILabel *costLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 300, 25)];
costLabel.tag = 102;
costLabel.backgroundColor = [UIColor clearColor];
costLabel.font = [UIFont fontWithName:@"Helvetica" size:14];
costLabel.font = [UIFont boldSystemFontOfSize:14];
costLabel.highlightedTextColor = [UIColor whiteColor];
[cell.contentView addSubview: costLabel];
UILabel *eventLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 60, 300, 25)];
eventLabel.tag = 103;
eventLabel.backgroundColor = [UIColor clearColor];
eventLabel.font = [UIFont fontWithName:@"Helvetica" size:14];
eventLabel.font = [UIFont boldSystemFontOfSize:14];
eventLabel.highlightedTextColor = [UIColor whiteColor];
[cell.contentView addSubview: eventLabel];
}
UILabel *dateLabel = (UILabel *) [cell.contentView viewWithTag:100];
dateLabel.text = [DateArray objectAtIndex:indexPath.row];
UILabel * timeLabel = (UILabel *) [cell.contentView viewWithTag:101];
timeLabel.text = [timeArray objectAtIndex:indexPath.row];
UILabel * costLabel = (UILabel *) [cell.contentView viewWithTag:102];
costLabel.text = [costArray objectAtIndex:indexPath.row];
UILabel *eventLabel = (UILabel *) [cell.contentView viewWithTag:103];
NSString *description = [eventArray objectAtIndex:indexPath.row];
if([description isEqualToString:@""])
{
eventLabel.text = @""; // Here i don't want to show this label and resize(reduce) the row height to 60;
}
else
{
eventLabel.text = description;
}
return cell;
}
Come posso fare questo? Grazie.
Mr.MadhavanRP ringrazia per la risposta. Ho provato la tua risposta nel mio codice. Ho controllato la condizione in cellForRowAtIndexPath: anche. La prima volta funziona bene. Quando scorro la vista tabella, la dimensione della cella è cambiata e l'etichetta descrittiva ha cambiato la posizione. Significa che l'etichetta descrittiva è rimossa per tutte le righe. Potete per favore aiutarmi. grazie – Gopinath
@Gopinath perché non provi ad aggiungere l'etichetta dei dettagli come sottoview delle celle solo quando hai qualche descrizione. Potrebbe essere necessario creare una classe personalizzata per risolvere il problema di scorrimento. fare riferimento alla risposta di questa domanda http://stackoverflow.com/questions/8352530/changing-the-position-of-custom-uibutton-in-custom-uitableviewcell – MadhavanRP