Powiedzmy, że mamKorzystanie dequeueReusableCellWithIdentifier dla własnych komórek
- (UITableViewCell*)tableView:(UITableView*) cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
static NSString *cellID = @"Cell Identifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
else
{
return cell;
}
UILabel * nameLabel = [[UILabel alloc] initWithFrame: CGRectMake(0, 15, box.size.width, 19.0f)];
nameLabel.text = name;
[nameLabel setTextColor: [UIColor colorWithRed: 79.0f/255.0f green:79.0f/255.0f blue:79.0f/255.0f alpha:1.0f]];
[nameLabel setFont: [UIFont fontWithName: @"HelveticaNeue-Bold" size: 18.0f]];
[nameLabel setBackgroundColor: [UIColor clearColor]];
nameLabel.textAlignment = NSTextAlignmentCenter;
[cell addSubview: nameLabel];
}
co to robić?
Jeśli komórka nie jest zerowa, a powiedzmy, że znajduje się w rzędzie 5, czy zwróci komórkę w wierszu 5 z dokładnymi etykietami tekstowymi itp.?
Zasadniczo moje pytanie brzmi: jeśli masz niestandardowe komórki z etykietami, widokami obrazów itp. W jaki sposób używasz cellForRowAtIndexPath
z dequeueReusableCellWithIdentifier
?
to samo dla tableviewcell, czy jest niestandardowe czy nie. Otrzymasz obiekt komórki i zresetujesz wszystkie jego stany, a następnie dodasz zawartość. Więc tak, będziesz musiał wyczyścić zawartość etykiet/obrazów (ustawiając ją na zero) i dostarczyć nową zawartość. – rydgaze
W tym kodzie nie ma możliwości ponownego dostępu do obiektu UILabel, z wyjątkiem wyliczenia subskrybentów komórki, która jest dość brzydka. Lepiej używać podklasy UITableViewCell, która ma właściwość UILabel, więc jest łatwo dostępna. –