2011-03-09 15 views

Respuesta

3

Si bien no es una buena idea modificar los controles estándar de iOS como UISlider o UISwitch, es muy fácil escribir su propio UIControl personalizado. Ver la publicación "Diagonal Slider" de Mike Ash

-2

Esos controles no tienen una opción de orientación vertical incorporada. Es posible que pueda rotarlos simplemente aplicando una transformación adecuada, pero probablemente no sea un buen plan si espera distribuir su aplicación a través de la tienda de aplicaciones. Consulte la sección 10.3 de las Pautas de revisión de la tienda de aplicaciones, que le informa que corre el riesgo de ser rechazado por el uso indebido de los controles estándar.

+0

Es bastante común para girar ciertos controles como el UISlider y UISwitch, especialmente el control deslizante. Wish Apple tenía una incorporada para facilitar el diseño automático. –

11

Como dijo Caleb, puede violar la directriz. Pero no estoy seguro de eso.

Si realmente desea cambiar el aquí es una muestra,

urSlider.transform=CGAffineTransformRotate(urSlider.transform,270.0/180*M_PI); 

El código va a cambiar la posición de la corredera de horizontal a vertical.Same como esto se puede hacer por UISwitch.

+0

necesita asegurarse de que la casilla de verificación "Usar ajuste automático" esté desmarcada en "Inspector de archivos" –

2

Intenté usar UISlider verticalmente con CGAffineTransformation (Configurado a 90 grados) .. Pero no funciona. Funciona hasta 45 grados. Así que mi suposición es que UISlider no está hecho para detectar movimiento de deslizamiento de dedo vertical.

+0

. ¿Sabe que CGAffineTransforms funciona utilizando unidades radian en lugar de grados? En lugar de una transformación de 90 grados, elige π/2 con tu unidad. Por si acaso: http://en.wikipedia.org/wiki/Radian#Conversions –

8

Estoy buscando hacer lo mismo. Desde el Apple Developer Site iOS UI Element Usage Guidelines:

deslizante

apariencia y el comportamiento

Un control deslizante consiste en una pista y un pulgar (un control circular que el usuario puede deslizar) y las imágenes opcionales que transmiten el significado de la derecha y valores de izquierda. Cuando las personas arrastran el dedo pulgar a lo largo del control deslizante, el valor o proceso se actualiza continuamente y se muestra en la pista.

Directrices

Utilice un control deslizante para dar a los usuarios un control preciso sobre los valores que se pueden elegir o el funcionamiento del proceso actual.

Si corresponde, personalice la apariencia de un control deslizante. Por ejemplo, puede hacer cualquiera de los siguientes:

Muestre un control deslizante ya sea horizontal o verticalmente.

Establezca el ancho de un control deslizante para que quepa con la interfaz de usuario de su aplicación.

Defina la apariencia del pulgar, para que los usuarios puedan ver de un vistazo si el control deslizante está activo.

Proporcione imágenes para que aparezcan en ambos extremos del control deslizante para ayudar a los usuarios a comprender lo que hace el control deslizante. Típicamente, estas imágenes personalizadas corresponden a los valores mínimo y máximo del rango de valores que controla el control deslizante. Un control deslizante que controla el tamaño de fuente, por ejemplo, podría mostrar un carácter muy pequeño en el extremo mínimo y un carácter muy grande en el extremo máximo.

Defina una apariencia diferente para la pista, dependiendo de qué lado del pulgar esté y en qué estado se encuentre el control.


Parece que no hay prohibiciones para cambiar interruptores, steppers y controles segmentados. Sin embargo, el permiso no parece otorgarse explícitamente para esos controles.

0

Para hacer un control deslizante verticalmente prueba este

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(200, 270, 160, 30)]; 
CGAffineTransform sliderRotation = CGAffineTransformIdentity; 
sliderRotation = CGAffineTransformRotate(sliderRotation,-(M_PI/2)); 
slider.transform = sliderRotation; 
[self.view addSubview:slider]; 
Cuestiones relacionadas