、あなたはこのような何かを行うことができますが、tableView:didSelectRowAtIndexPath:
のような方法にしていると仮定すると(またはセルへのインデックスパスを取得するための別の方法を持っていること):
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";
これは最初のUILabelを見つけるだろうセルに複数のラベルがある場合は機能しない可能性があります。より強固な方法は、セルを作成するときにラベルのタグを設定することです(これはInterface Builderまたはコードで行うことができます)。次に、このようなラベルを見つけることができます:
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";
ありがとうございます。 – NSExplorer