UIPopoverController 太大而 UIPickerView 太小
我有一个 UIPickerView
显示在 UIPopoverController
内。 UIPickerView
的尺寸为:320x216
。由于某种原因,UIPickerView
似乎是正确高度的 3/5,而 UIPopoverController
一直延伸到屏幕底部。
请参阅下面的代码。
谢谢!
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];
I have a UIPickerView
displayed inside a UIPopoverController
. The dimensions of the UIPickerView
are: 320x216
. For some reason, the UIPickerView
seems to be ~3/5 of the proper height, and the UIPopoverController
spans all the way down to the bottom of the screen.
Please see the code below.
Thanks!
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];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
“压扁”选择器视图的原因似乎是这一行:
相反,将选择器视图添加为子视图:
接下来,要修复弹出窗口的高度,请在呈现之前设置
popoverContentSize
:另外,将选取器视图的框架从以下位置修复
为:
The reason for the "squashed" picker view seems to be this line:
Instead, add the picker view as a subview:
Next, to fix the popover height, set
popoverContentSize
before presenting it:Also, fix the picker view's frame from this:
to this: