2011-11-11 16 views
3

UIPopoverControllerの中にUIPickerViewが表示されています。 UIPickerViewの寸法は、320x216です。なんらかの理由で、UIPickerViewは適切な高さの〜3/5のように見え、UIPopoverControllerは画面の一番下にまで及んでいます。UIPopoverControllerが大きすぎるとUIPickerViewが小さすぎる

下記のコードをご覧ください。

ありがとうございます!

self.picker = [[[UIPickerView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height+44, 320, 216)] autorelease]; 
self.picker.backgroundColor = [UIColor clearColor]; 
self.picker.showsSelectionIndicator = YES; 
self.picker.delegate = self; 
self.picker.dataSource = self; 
self.picker.transform = CGAffineTransformMakeScale(-1, 1); 
UIViewController *pickerController = [[UIViewController alloc] init]; 
[pickerController setView:self.picker]; 
UIPopoverController *pickerPopover = [[UIPopoverController alloc] initWithContentViewController:pickerController]; 
[pickerPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
pickerPopover.delegate = self; 
self.popover = pickerPopover; 
[pickerController release]; 
[pickerPopover release]; 
+0

、あなたは、単にコラムの高さを設定することを忘れないでください - (CGFloat)pickerView:(UIPickerView *)pickerView ** rowHeightForComponent:**(NSInteger)コンポーネント{return 30.0; }(あなたの.hファイルにを忘れないでください!) – Fattie

答えて

8
"押しつぶさ" ピッカービューの理由は、この行のようだ

代わり
[pickerController setView:self.picker]; 

は、サブビューとしてピッカービューを追加:

[pickerController.view addSubview:picker]; 


次へ]を、ポップオーバーの高さを修正するには、それを提示する前にpopoverContentSizeと設定してください。

また


、これからピッカービューのフレームを修正します。これに

CGRectMake(0, self.view.bounds.size.height+44, 320, 216) 

:ただ、これに上のグーグルで誰のため

CGRectMake(0, 0, 320, 216) 
+0

ありがとう!それはうまくいった! ちょうど質問です - なぜ 'setView:'を使うのが問題になるのですか? – joshim5

+0

それは別の良い質問です。わかりませんが、ピッカービューの問題のように見えます。 – Anna

関連する問題