iphone - how - swift segmented control change view
¿Puedo mostrar un objeto UISegmentedControl en vertical? (4)
+1 para la respuesta de Ben, aunque al rotar el control segmentado también se gira el texto hacia adentro. ¡Nunca temas! Solo tenemos que rotar las etiquetas interiores, 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
}
}
}
Versión Swift 2:
for view in segmentedControl.subviews {
for subview in view.subviews {
if subview.isKindOfClass(UILabel) {
subview.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI / 2.0))
}
}
}
¿Hay alguien que pueda enseñarme cómo mostrar un objeto UISegmentedControl en dirección vertical, en lugar de en dirección horizontal?
Encontré el siguiente control en los controles de cacao que se ve bien. Es un control personalizado y se parece a una subclase de UIControl.
Pero si me preguntas, puedo intentar un enfoque diferente, crearé una vista de tabla con un ancho de columna (44px) y la mantendré como un niño en el contenedor y la alinearé con una esquina del contenedor, personalizaré las celdas y tendrás mi lista en eso y en el toque de cada fila, cargue el contenido correspondiente en la vista de detalles en su vista de contenido. No lo probé, intentaré y publicaremos los resultados pronto.
Este control es solo horizontal. De la documentación de UISegementedControl :
Un objeto UISegmentedControl es un control horizontal formado por varios segmentos, cada uno de los cuales funciona como un botón discreto. Un control segmentado permite un medio compacto para agrupar una serie de controles.
Tendrá que hacer esto como un control personalizado.
Siempre puede modificar la transformación en el control segmentado.
segmentedControl.transform = CGAffineTransformMakeRotation (M_PI / 2.0);