2012-09-21 20 views
5

¿Es posible cambiar el tamaño de un UIStepper? Cuando intento establecer el tamaño de un paso a paso, parece que se ignora.¿Cambiar el tamaño de UIStepper?

UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(50,50,100,100)]; 
[self.view addSubview:stepper]; 
NSLog(@"%@",stepper); 
CGRect r = CGRectMake(50,50,100,100); 
stepper.frame = r; 
NSLog(@"%@",stepper); 

Log dice que el marco es (50 50; 94 27)

¿Es posible cambiar el tamaño de 94, 27?

Respuesta

-1

Estoy de acuerdo con bani uppal. el tamaño del paso a paso no puede modificarse, no puede implementar la misma funcionalidad con la ayuda de dos botones personalizados y puede configurar las imágenes de fondo de los botones para dar la impresión de paso a paso.

+0

El tamaño se puede cambiar de una manera bastante limpia. Establezca una imagen de fondo en el paso a paso y el tamaño del paso a paso cambiará al de la imagen. – jollyr0ger

-3

No puede cambiar el tamaño de un UIStepper. UIStepper es una subclase de UIView, probablemente puedas cambiar el tamaño con algún tipo de truco, podría estar creando una subclase de UIStepper y anulando el drawRect :, no estoy seguro de que funcione. Pero hacerlo pondrá a su aplicación en riesgo de ser rechazada. Si necesita un tamaño diferente, la mejor opción es crear un componente personalizado.

+0

¿Por qué votar abajo? –

12

Puede actualizar correctamente el tamaño de UIStepper sin transformación.

utilizar el siguiente método para configurar la imagen de fondo y el paso a paso se dibujarse a sí mismo utilizando el tamaño de fondo:

- (void)setBackgroundImage:(UIImage*)image forState:(UIControlState)state 

Ejemplo

[self.stepper1 setIncrementImage:[UIImage imageNamed:@"plusIcon1.png"] forState:UIControlStateNormal]; 
    [self.stepper1 setDecrementImage:[UIImage imageNamed:@"minusIcon1.png"] forState:UIControlStateNormal]; 

    [self.stepper1 setBackgroundImage:[UIImage imageNamed:@"stepperBkg1.png"] forState:UIControlStateNormal]; 
    [self.stepper1 setBackgroundImage:[UIImage imageNamed:@"stepperBkgHighlighted1.png"] forState:UIControlStateHighlighted]; 
    [self.stepper1 setBackgroundImage:[UIImage imageNamed:@"stepperBkgDisabled1.png"] forState:UIControlStateDisabled]; 

Esto produce el siguiente resultado de la izquierda, en comparación con un paso a paso sin modificar a la derecha: enter image description here

[email protected]:

enter image description here

[email protected]:

enter image description here

+0

No estoy seguro de por qué esto no ha recibido más votos. Esta es una excelente respuesta. Y esta debería ser la respuesta aceptada. Gracias. – pixbroker

+0

Lo importante aquí es que la imagen de fondo es la que establece el tamaño del UIStepper. – jollyr0ger

0

puede utilizar // en el func viewDidLoad

Stepper.transform = Stepper.transform.scaledBy(x: 10, y: 10) 

pero de alguna manera compensará la función ¡inténtalo!

Cuestiones relacionadas