2013-09-25 14 views
18

In IOS7 UITableView non ha più indentazione quando si utilizza style = grouped. Come si può abilitare il rientro, in modo che UITableView si comporti come l'app delle impostazioni di Apple?IOS7 UITableView raggruppato come in Impostazioni App

+0

un'occhiata a questo link. Mostra come configurare un UITableView raggruppato http://mobisoftinfotech.com/iphone-uitableview-tutorial-grouped-table/ – erdekhayser

+2

No, so come funziona. Ma in IOS7 hanno rimosso la rientranza, ma ne ho bisogno. Apple li usa anche nella loro app delle impostazioni. –

+0

Quale indentazione vuoi dire esattamente? I separatori o il testo? Se metti i tuoi sottoview in contentview della cella, tutto dovrebbe apparire perfetto .. – Bms270

risposta

0

All'interno cellForRowAtIndexPath metodo, provate questo:

CALayer *sublayer = [CALayer layer]; 
UIImage *img = [UIImage imageNamed:@"blue_box_6dbcef.png"]; 
sublayer.backgroundColor = [[UIColor alloc] initWithPatternImage:img].CGColor; 
sublayer.frame = CGRectMake(10,0,container.frame.size.width-20, 112); 
//sublayer.cornerRadius = 5; // For rounded corners 
UIView *bgview = [[UIView alloc] init]; 
bgview.backgroundColor = [UIColor clearColor]; 
[bgview.layer addSublayer:sublayer]; 
cell.backgroundView = bgview; 

che aggiungerà un margine di 10pt su entrambi i lati (sinistra/destra) della cellula.

16

C'è un modo molto più semplice per raggiungere questo obiettivo.

  1. Posizionare UITableView lontano dai lati. es: utilizzando l'Autolayout avresti uno spazio iniziale e finale di 15px (o quello che vuoi). Ora stai creando il "rientro" che Apple ti offriva gratuitamente con viste di tabelle raggruppate.

  2. Regolare lo strato di aggiungere angoli e un bordo.

[[[self tableView] layer] setCornerRadius:5.0f];
[[[self tableView] layer] setBorderWidth:0.5f];
[[[self tableView] layer] setBorderColor:[[UIColor redColor] CGColor]];

(non posso postare un'immagine del risultato, perché non ho ancora abbastanza reputazione)

Problemi correlati