Angenommen, Sie bei einem Verfahren wie tableView:didSelectRowAtIndexPath:
sind (oder eine andere Art und Weise haben den Index Weg in die Zelle zu erhalten), können Sie etwas tun können:
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
UILabel *label = nil;
for(UIView *subview in cell.contentView.subviews) {
if([subview isKindOf:[UILabel class]]) {
label = (UILabel*)subview;
break;
}
}
if(label)
label.text = @"New text";
Dies wird die erste UILabel finden Sie im Handbuch Zelle, und funktioniert möglicherweise nicht, wenn Ihre Zelle mehr als ein Label hat. Ein robusterer Weg ist das Setzen des Tags des Labels beim Erstellen der Zelle (dies kann im Interface Builder oder im Code erfolgen). Dann können Sie das Etikett wie diese finden:
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
UILabel *label = nil;
for(UIView *subview in cell.contentView.subviews) {
if([subview isKindOf:[UILabel class]] && [subview tag] == kDetailLabelTag) {
label = (UILabel*)subview;
break;
}
}
if(label)
label.text = @"New text";
Dank Costa !! – NSExplorer