Quando utilizziamo una UITableView in stile Grouped potremmo aver necessità di personalizzare la grafica dei titoli delle sezioni, come California o New York dell’esempio qui sotto.

Per farlo basta utilizzare il codice seguente, inserendolo nel delegato, cioè nella classe che risponde al protocollo UITableViewDelegate:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // Restituisco una mia View personalizzata, in questo caso un oggetto // di tipo UILabel - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease]; label.font = [UIFont boldSystemFontOfSize:20]; label.textAlignment = UITextAlignmentCenter; label.shadowColor = [UIColor blackColor]; label.shadowOffset = CGSizeMake(1, 1); label.text = @"Sezione"; // Sostituire con un array come al solito label.textColor = [UIColor whiteColor]; label.backgroundColor = [UIColor clearColor]; label.opaque = NO; return label; } // Bisogna supportare anche questo message altrimenti non funziona - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 44; } |
È importante inserire anche heightForHeaderInSection, altrimenti non funziona.
Note interessanti
Nella creazione della nostra UILabel, che volendo potrebbe essere anche un oggetto più complesso come una UIView o UIImageView, ho utilizzato per inizializzare il frame CGRectZero che corrisponde a CGRectMake(0,0,0,0).








4
Non ci sono commenti per questo Post
Lascia un commento