2012-09-21 13 views
5

Czy można zmienić rozmiar UISteppera? Kiedy próbuję ustawić rozmiar kroku, wydaje się, że zostanie zignorowany.Zmień rozmiar 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 mówi rama jest (50 50, 94 27)

Czy jest możliwe, aby zmienić rozmiar z 94, 27?

Odpowiedz

-1

Zgadzam się z bani uppal. nie można zmienić wielkości kroku, nie można zaimplementować tej samej funkcjonalności za pomocą dwóch niestandardowych przycisków i można ustawić obrazy tła przycisków w celu uzyskania wrażenia steppera.

+0

Rozmiar można zmienić w całkiem czysty sposób. Ustaw obraz tła na krokowy, a rozmiar kroku zmieni się na obraz. – jollyr0ger

-3

Nie można zmienić rozmiaru UISteppera. UIStepper jest podklasą UIView, możesz prawdopodobnie zmienić rozmiar za pomocą jakiegoś hackowania, może tworzyć podklasę UIStepper i nadpisywać drawRect :, nie jestem pewien, czy to zadziała. Jednak spowoduje to, że Twoja aplikacja zostanie odrzucona. Jeśli potrzebujesz innego rozmiaru, najlepszą opcją jest utworzenie komponentu niestandardowego.

+0

Dlaczego głosowanie w dół? –

12

Można poprawnie zaktualizować rozmiar UIStepper bez transformacji.

pomocą następującej metody ustawić obraz tła i krokowego wyciągnie się na podstawie rozmiaru tle:

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

Przykład

[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]; 

Daje to następujące wyniki: po lewej stronie, w porównaniu do niezmodyfikowanego krok po prawej: enter image description here

[email protected]:

enter image description here

[email protected]:

enter image description here

+0

Nie wiem, dlaczego to nie wpłynęło więcej głosów w górę. To jest doskonała odpowiedź. I to powinna być zaakceptowana odpowiedź. Dzięki. – pixbroker

+0

Ważną częścią jest to, że obraz tła jest tym, który ustawia rozmiar UISteppera. – jollyr0ger

0

można użyć // w func viewDidLoad

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

ale w pewnym sensie kompensuje funkcję, spróbuj sam!

Powiązane problemy