¿Hay alguien que pueda enseñarme cómo mostrar un objeto UISegmentedControl en dirección vertical, en lugar de en dirección horizontal?¿Puedo mostrar un objeto UISegmentedControl en vertical?
Respuesta
+1 para la respuesta de Ben, aunque al girar el control segmentado también se rota el texto dentro. ¡Nunca temas! Sólo tenemos que girar las etiquetas en el interior, así:
NSArray *arr = [segmentedControl subviews];
for (int i = 0; i < [arr count]; i++) {
UIView *v = (UIView*) [arr objectAtIndex:i];
NSArray *subarr = [v subviews];
for (int j = 0; j < [subarr count]; j++) {
if ([[subarr objectAtIndex:j] isKindOfClass:[UILabel class]]) {
UILabel *l = (UILabel*) [subarr objectAtIndex:j];
l.transform = CGAffineTransformMakeRotation(- M_PI/2.0); //do the reverse of what Ben did
}
}
}
Swift versión 2:
for view in segmentedControl.subviews {
for subview in view.subviews {
if subview.isKindOfClass(UILabel) {
subview.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI/2.0))
}
}
}
Este control es horizontal solamente. Desde el UISegementedControl documentación:
objeto A UISegmentedControl es un control horizontal hecha de múltiples segmentos, cada segmento que funciona como un botón discreto. Un control segmentado ofrece un medio compacto para agrupar junto con una serie de controles.
Tendrás que hacer esto como un control personalizado.
Siempre puede modificar la transformación en el control segmentado.
segmentedControl.transform = CGAffineTransformMakeRotation (M_PI/2.0);
+1 por responder la pregunta :). Me pregunto acerca de la usabilidad de un control segmentado rotado. – RedBlueThing
Sí, no estaba juzgando si era una buena idea o no ;-) –
@ ben-gottlieb Una calidad admirable :) – RedBlueThing
he encontrado el control por debajo de los controles de cacao que se ve bien. Es un control personalizado y se ve como una subclase de UIControl.
Pero si me preguntas, puedo intentar un enfoque diferente, voy a crear un tabelview con un ancho de columna (44px) y mantenerlo como un niño en el envase y puede alinearlo a una esquina del contenedor, personalice las celdas y tenga mi lista en ese y en el toque de cada fila, cargue el contenido correspondiente en la vista de detalles en su contenido. No lo intenté, trataré de publicar los resultados pronto.
- 1. ¿Cómo puedo desactivar un UISegmentedControl?
- 2. UISegmentedControl incrustado en un UINavigationBar/Item
- 3. Detectando el segmento interceptado de un UISegmentedControl
- 4. ¿Cómo puedo establecer el estado predeterminado de un UISegmentedControl?
- 5. Div barra de desplazamiento vertical mostrar
- 6. ¿Cómo puedo hacer un UISlider vertical?
- 7. UISegmentedControl con número de placa
- 8. UISegmentedControl escala de imagen
- 9. UISegmentedControl Color en una UIToolbar
- 10. ¿Cómo personalizar UISegmentedControl en iOS?
- 11. UISegmentedControl value changed programmatically
- 12. UISegmentedControl Best Practice
- 13. UISegmentedControl text programmatically
- 14. UISegmentedControl y agregar objetivos
- 15. Texto vertical en datagridview
- 16. Fuerza la barra de desplazamiento vertical para mostrar en IE8
- 17. Usando UISegmentedControl como botón
- 18. Personalizar los colores de un UISegmentedControl
- 19. UISegmentedControl Dentro de UIToolBar
- 20. UISegmentedControl, UIToolbar y UINavigationItem
- 21. ¿Cómo puedo mostrar un combobox en Android?
- 22. ¿Cómo puedo mostrar un mensaje en Maven
- 23. UITableViewCell/UISegmentedControl límite de problema
- 24. ¿Puedo convertir un objeto Stream en un objeto FileInfo?
- 25. mostrar los atributos de un objeto en python
- 26. Conmutar ViewControllers con UISegmentedControl en iOS5
- 27. configuración del segmento predeterminado en UISegmentedControl
- 28. Android: ¿Cómo mostrar automáticamente la barra de desplazamiento vertical?
- 29. El uso de un UISegmentedControl en el pie de UIPopoverController
- 30. UISegmentedControl en la aplicación de correo
Esto funciona bien para las etiquetas, pero si su control tiene imágenes en su lugar, no funciona. En ese caso, seguiría la sugerencia de Ben y luego solo rotaría las imágenes en la herramienta Vista previa de OSX (o Photoshop) en lugar de tratar de rotar el UIImageView en su código. –
Este código se basa en la implementación interna (no documentada) de UISegmentedControl. Es propenso a fallas cada vez que Apple cambia la implementación de este control. Incluso un cambio simple como la inserción de una capa adicional de vistas entre las instancias de UILabel que está buscando y el nivel superior rompería este código. – Arda
@Arda Podría romperse, pero tomaría alrededor de 10 minutos inventar su propio controlador segmentado que hiciera lo mismo si ese fuera el caso, entonces hágalo y disfrútelo. Lo más probable es que siempre puedas encontrar la forma de hacer esto si algo cambia. – Sethmr