Tak więc patrzyłem na użycie UITableView's
registerNib:
i [dequeueReusableCellWithIdentifier: forIndexPath:]
do załadowania niestandardowego UITableCellView
z NIB
. Oto ważne bitów z mojego kontrolera:Jak przypisać właściciela pliku przy użyciu UITableView registerNib: załadować niestandardową UITableViewCell ze stalówki?
- (void)viewDidLoad
[super viewDidLoad];
self.tableView.bounces = NO;
[self.tableView registerNib:[UINib nibWithNibName:@"ProgramListViewCell" bundle:nil] forCellReuseIdentifier:@"Cell"];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
TVProgramListTableViewCell *cell = (TVProgramListTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.frame = CGRectMake(0, 0, CELLWIDTH, OPENCELLHEIGHT);
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.clipsToBounds = YES;
cell.titleLabel.text = [NSString stringWithFormat:@"herpa derp: %i", indexPath.row];
return cell;
więc jestem rejestracji NIB
gdy widok ładuje i następnie wykorzystanie go do zdejmującą z kolejki komórkowej. Do tego momentu wszystko działa tak, jak tego oczekuję. Mój zwyczaj TVProgramListTableViewCell
jest poprawnie ładowany z NIB
i jest on podłączony do sieci.
NIB
zawiera widok z przyciskiem, który chciałbym mieć zdarzenia pożarowe do kontrolera. Mogę ustawić typ właściciela pliku jako moją klasę kontrolera widoku tabeli, ale nie wiem, jak faktycznie podłączyć właściciela pliku.
Teraz, jeśli używałem loadNibNamed:
, i samemu ładując NIB
, okablowanie Właściciela pliku byłoby łatwe. Czy jest jakiś sposób osiągnięcia tego przy użyciu registerNib
? Poza tym, że nie można podłączyć Właściciela pliku, wydaje się, że jest to doskonały sposób na użycie niestandardowych komórek w numerze UITableView
.
Tak, wróciłem do używania loadNibNamed: gdy komórka jest odrywana. To pozwala mi ustawić właściciela na mój kontroler, a także uzyskać IBOutlets w mojej komórce niestandardowej. Więc nie ma potrzeby wywoływania addTarget, ponieważ mogę powiązać zdarzenie przycisku z właścicielem pliku w IB i zostanie on przekierowany do kontrolera, a jednocześnie mapować moje UIViews do gniazd w mojej niestandardowej UITableViewCell. –
@VilleRinne, myślę, że rejestracja stalówki jest bardziej wydajna (dlatego Apple ją wprowadziła) niż ładowanie stalówki dla każdej tworzonej komórki. – rdelmar
Tak, może być bardziej wydajny, ale nie jest zbyt użyteczny, jeśli nie możesz powiązać kontrolera z właścicielem pliku stalówki? Czy efektywność jest tak czy inaczej problemem, skoro stalówka jest ładowana tylko wtedy, gdy nie można odjąć komórki? –