2011-09-30 11 views
5

Come autoallungare UISegmented Control in orizzontale per riempire completamente UITableViewCell? In un modo in cui verrà ridimensionato automaticamente anche dopo un cambio di orientamento.come estendere automaticamente UISegmented Control in orizzontale per riempire completamente UITableViewCell?

Ho provato quanto segue, ma questo ancora non funziona. Il controllo segmentato appare nella cella a sinistra, ma non si estende orizzontalmente.

NSArray *itemArray = [NSArray arrayWithObjects: @"Feet", @"Metric", nil]; 
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray]; 
    segmentedControl.selectedSegmentIndex = [self.config.isMetric boolValue] ? 1 : 0; 
    segmentedControl.contentMode = UIViewContentModeScaleToFill; 
    [cell.contentView addSubview:segmentedControl]; 
    cell.contentView.contentMode = UIViewContentModeScaleToFill; 
    [segmentedControl release]; 

risposta

3

È necessario impostare il frame per UISegmentedControl che nel tuo caso sarebbe uguale al frame della cella.

segmentedControl.frame = cell.frame; 
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
+0

hi Bourne - quindi non c'è modo di automatizzare lo stretching? Quindi in questo caso dovrei ridimensionare anche manualmente dopo il cambio di orientamento? – Greg

+0

Modificata la risposta. Dovrebbe funzionare ora anche per gli interruttori di orientamento. – Bourne

+0

È inoltre possibile rimuovere queste due righe nel codice corrente in cui si impostano i valori UIViewContentMode. – Bourne

Problemi correlati