2012-09-18 13 views
8

Próbuję zmienić wysokość PickerView zaUIPickerView Wzrost nie zmienny

self.pickerView = [[UIPickerView alloc] init]; 
self.pickerView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); 

Xcode dziennika pokazuje następujący komunikat:

-[UIPickerView setFrame:]: invalid height value 274.0 pinned to 216.0 

Jak mogę zmienić jego wysokość?

+0

Nie można zmienić wysokości UIPickerView. –

+0

Na iOS 9 wszystko się zmieniło! http://stackoverflow.com/a/35562894/8047 –

Odpowiedz

29

tutaj są tylko threevalidheights dla UIPickerView(162.0, 180.0 and 216.0).

Możesz korzystać z funkcji CGAffineTransformMakeTranslation i CGAffineTransformMakeScale, aby właściwie dopasować wózek do swoich potrzeb.

przykład:

CGAffineTransform t0 = CGAffineTransformMakeTranslation (0, pickerview.bounds.size.height/2); 
CGAffineTransform s0 = CGAffineTransformMakeScale  (1.0, 0.5); 
CGAffineTransform t1 = CGAffineTransformMakeTranslation (0, -pickerview.bounds.size.height/2); 
pickerview.transform = CGAffineTransformConcat   (t0, CGAffineTransformConcat(s0, t1)); 

Powyższy kod changeheight z pickerview to half i re-position go do dokładnego (Left-x1, Top-y1) pozycji.

Więcej informacji here.

4

Istnieją tylko trzy ważne wysokości dla UIPickerView (162.0, 180.0 and 216.0).

More detail.

1

Istnieją tylko trzy prawidłowe wartości 162.0, 180.0 i 216.0 dla wysokości UIPicker. nawet jeśli ustawi się inną wysokość, ustawi wysokość na jedną z tych trzech wysokości, która jest najbliższa podanej wysokości.

0

Spróbuj tego. Przeszukałem też wiele przykładów i znalazłem to.

pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0,250,320,230)];//to change the height 
pickerView.delegate =self; 
pickerView.dataSource =self; 
pickerView.showsSelectionIndicator = YES; 
[self.view addSubview:pickerView];