No existe un "comportamiento de relleno de espacio" para UIView en general. Obtienen el tamaño que les asignan. Todo lo que se puede hacer es:
- puesto su máscara de tamaño automático para controlar la forma en que cambian de tamaño si su vista padre cambia su tamaño
- puesto su UIViewContentMode para controlar cómo cambiar el tamaño de su contenido (importante para UIImageViews, por ejemplo)
En su caso, usted podría hacer lo siguiente para obtener una UIToolbar contiene un UISegmentedControl que es tan amplia como la barra de herramientas:
(void)viewDidLoad
{
[super viewDidLoad];
// Create the toolbar; place it at the bottom of the view.
UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height-44, self.view.bounds.size.width, 44)];
myToolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
[self.view addSubview:myToolbar];
// Create the UISegmentedControl with two segments and "Bar" style. Set frame size to that of the toolbar minus 6pt margin on both sides, since 6pt is the padding that is enforced anyway by the UIToolbar.
UISegmentedControl *mySegmentedControl = [[UISegmentedControl alloc] initWithFrame:CGRectInset(myToolbar.frame, 6, 6)];
// Set autoresizing of the UISegmentedControl to stretch horizontally.
mySegmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
[mySegmentedControl insertSegmentWithTitle:@"First" atIndex:0 animated:NO];
[mySegmentedControl insertSegmentWithTitle:@"Second" atIndex:1 animated:NO];
mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
// Create UIBarButtonItem with the UISegmentedControl as custom view, and add it to the toolbar's items
UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:mySegmentedControl];
myToolbar.items = [NSArray arrayWithObject:myBarButtonItem];
}