Ho un UITableView che utilizza il layout automatico. Ho diversi tipi di celle, ma per ora usiamo il più semplice di tutti, uno che ha solo un UILabel.Rimuovi padding/margine UILabel durante l'utilizzo del layout automatico
In tableView:heightForRowAtIndexPath:
ho il seguente codice:
[self configureCell:self.detailsCell forRowAtIndexPath:indexPath];
[self.detailsCell layoutIfNeeded];
CGSize size = [self.detailsCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
return size.height + 1;
, che a sua volta chiama
- (void)configureCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
// ...
cell.detailsLabel.text = self.data.myText;
cell.detailsLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
// [cell.detailsLabel sizeToFit]; <- I tried this, but didn't help
}
e finisce per ottenere questo:
Il rettangolo verde è la cella effettiva. Il rettangolo viola è l'UILabel. Non voglio la parte superiore e inferiore viola padding/margine. Come posso liberarmene?
Sembra che tu abbia costanti con questi margini di installazione nello storyboard. Quindi si comporta esattamente come dovrebbe. – sha
Questi margini sono quelli verdi .. Non vuole il padding all'interno dell'etichetta stessa. – Paludis