Dos líneas de texto en un UISegmentedControl

Por mucho que lo intente, no puedo resolver un error UISegmentedControl para una aplicación de iPhone iOS7.

Cuando creo el control segmentado, uso este código:

NSArray *segmentedControlItemArray = [NSArray arrayWithObjects: @"Nominal:\n27 inch", @"Actual:\n700c x 23mm", @"Actual:\n700c x 20mm", nil];
_wheelDiameterSegmentedControl = [[UISegmentedControl alloc] initWithItems:segmentedControlItemArray];
_wheelDiameterSegmentedControl.frame = CGRectMake(0, 102, 290, 50);
_wheelDiameterSegmentedControl.selectedSegmentIndex = 0;
_wheelDiameterSegmentedControl.tintColor = [UIColor colorWithRed:0.35 green:0.4 blue:0.9 alpha:1.0];

for (id segment in [_wheelDiameterSegmentedControl subviews]) {
    for (id label in [segment subviews]) {
        if ([label isKindOfClass:[UILabel class]]) {
            UILabel *titleLabel = (UILabel *) label;
            titleLabel.numberOfLines = 0;   
        }   
    }  
}

[_wheelDiameterSegmentedControl addTarget:self
                     action:@selector(pickOne:)
           forControlEvents:UIControlEventValueChanged];

[_wheelDiameterMenuContainer addSubview:_wheelDiameterSegmentedControl];

Lamentablemente, no puedo publicar imágenes, o le mostraría una imagen del control exacto que quiero: cada uno de los segmentos en el Control UISegmentado tiene dos líneas de texto, con un salto de línea exactamente donde lo pedí.

Sin embargo, en la rotación, me gustaría mantener el control segmentado en todo el ancho, y los saltos de línea parecen tontos en segmentos tan amplios. Por lo tanto, en willAnimateRotationToInterfaceOrientation, he incluido el siguiente código, sin saltos de línea en las cadenas:

    [_wheelDiameterSegmentedControl setFrame:CGRectMake(0, 102, 450, 50)];
    [_wheelDiameterSegmentedControl setTitle:@"Nominal: 27 inch" forSegmentAtIndex:0];
    [_wheelDiameterSegmentedControl setTitle:@"Actual: 700c x 23mm" forSegmentAtIndex:1];
    [_wheelDiameterSegmentedControl setTitle:@"Actual: 700c x 20mm" forSegmentAtIndex:2];

Y una vez más, si pudiera insertar una imagen, le mostraría una imagen de exactamente lo que quiero: un amplio control UISegmentado sin saltos de línea en las etiquetas (1 línea de texto por etiqueta).

Aquí es donde me meto en problemas. Mis opciones, cuando vuelvo al retrato, parecen ser:

1 línea de texto de la etiqueta, truncada, con el formato

"Actual: 7 ..."

cuando acabo de restablecer el tamaño del control UISegmented usando

[_wheelDiameterSegmentedControl setFrame:CGRectMake(0, 102, 290, 50)];

2 líneas de texto de etiqueta, truncadas, con el formato.

"Real:
700c x ... "

cuando restablezco el tamaño y también reinicio los valores de cadena y vuelvo a ejecutar el bucle de código que establece el número de líneas de la etiqueta en 2, usando

    NSArray *segmentedControlItemArray = [NSArray arrayWithObjects: @"Nominal:\n27 inch", @"Actual:\n700c x 23mm", @"Actual:\n700c x 20mm", nil];

    [_wheelDiameterSegmentedControl setTitle:[segmentedControlItemArray objectAtIndex:0] forSegmentAtIndex:0];
    [_wheelDiameterSegmentedControl setTitle:[segmentedControlItemArray objectAtIndex:1] forSegmentAtIndex:1];
    [_wheelDiameterSegmentedControl setTitle:[segmentedControlItemArray objectAtIndex:2] forSegmentAtIndex:2];
    for (id segment in [_wheelDiameterSegmentedControl subviews]) {
        for (id label in [segment subviews]) {
            if ([label isKindOfClass:[UILabel class]]) {
                UILabel *titleLabel = (UILabel *) label;
                titleLabel.numberOfLines = 2;
            }
        }
    }
    [_wheelDiameterSegmentedControl setFrame:CGRectMake(0, 102, 290, 50)];

3 líneas de texto de etiqueta, con el formato.

"Real:
700c x
20mm "

que es lo que obtengo cuando reemplacé el número forzado deOfLines = 2 anterior con el número de Forfines = 0 que funcionó cuando configuré el UISegmentedControl en primer lugar.

Lo que me gustaría es lo que obtengo cuando creo el control, que es

"Real:
700c x 20mm "

Pero no importa lo que haya intentado (poniendo la cadena y el código numberOfLines en willRotateToInterfaceOrientation o didRotateFromInterfaceOrientation; restableciendo el marco del control UISegmented antes de cambiar el texto; volviendo a establecer el marco después de cambiar el texto ...), puedo ' Recibí mi etiqueta bonita, limpia, de dos líneas. ¿Que me estoy perdiendo aqui?

Respuestas a la pregunta(3)

Su respuesta a la pregunta