Da quando ho scoperto di AutoLayoutusarlo ovunque, ora sto cercando di usarlo con un file tableHeaderView.
Ho fatto una subclassdelle UIViewaggiunto tutto (etichette, ecc ...) Ho voluto con i loro vincoli, poi ho aggiunto questo CustomViewal UITableView' tableHeaderView.
Tutto funziona bene, tranne i UITableViewsempre visualizzato sopra la CustomView, da sopra mi riferisco al CustomViewè sotto il UITableViewmodo che non può essere visto!
Sembra che non importa quello che faccio, il heightdel UITableView' tableHeaderViewè sempre 0 (così è la larghezza, xey).
La mia domanda: è possibile farlo senza impostare manualmente la cornice ?
EDIT:
L CustomView' subviewche sto usando ha questi vincoli:
_title = [[UILabel alloc]init];
_title.text = @"Title";
[self addSubview:_title];
[_title keep:[KeepTopInset rules:@[[KeepEqual must:5]]]]; // title has to stay at least 5 away from the supperview Top
[_title keep:[KeepRightInset rules:@[[KeepMin must:5]]]];
[_title keep:[KeepLeftInset rules:@[[KeepMin must:5]]]];
[_title keep:[KeepBottomInset rules:@[[KeepMin must:5]]]];
Sto usando una comoda libreria 'KeepLayout' perché la scrittura manuale dei vincoli richiede un'eternità e troppe righe per un singolo vincolo, ma i metodi si spiegano da soli.
E UITableViewha questi vincoli:
_tableView = [[UITableView alloc]init];
_tableView.translatesAutoresizingMaskIntoConstraints = NO;
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.backgroundColor = [UIColor clearColor];
[self.view addSubview:_tableView];
[_tableView keep:[KeepTopInset rules:@[[KeepEqual must:0]]]];// These 4 constraints make the UITableView stays 0 away from the superview top left right and bottom.
[_tableView keep:[KeepLeftInset rules:@[[KeepEqual must:0]]]];
[_tableView keep:[KeepRightInset rules:@[[KeepEqual must:0]]]];
[_tableView keep:[KeepBottomInset rules:@[[KeepEqual must:0]]]];
_detailsView = [[CustomView alloc]init];
_tableView.tableHeaderView = _detailsView;
Non so se devo impostare alcuni vincoli direttamente sul CustomView, penso che l'altezza del CustomView sia determinato dai vincoli sul UILabel"titolo" in esso.
MODIFICA 2: Dopo un'altra indagine sembra che l'altezza e la larghezza di CustomView siano calcolate correttamente, ma la parte superiore di CustomView è ancora allo stesso livello della parte superiore di UITableView e si muovono insieme quando scorro.