UIPopoverController太大而UIPickerView太小 [英] UIPopoverController too large and UIPickerView too small

查看:63
本文介绍了UIPopoverController太大而UIPickerView太小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 UIPopoverController 中显示了 UIPickerView UIPickerView 的尺寸为: 320x216 。出于某种原因, UIPickerView 似乎是正确高度的~3 / 5, UIPopoverController 涵盖所有一直到屏幕的底部。

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.

请看下面的代码。

谢谢!

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


推荐答案

压扁选择器视图的原因似乎是是这一行:

The reason for the "squashed" picker view seems to be this line:

[pickerController setView:self.picker];

相反,将选择器视图添加为子视图:

Instead, add the picker view as a subview:

[pickerController.view addSubview:picker];



接下来,要修复弹出窗口高度,请设置 popoverContentSize 在呈现之前:

pickerPopover.popoverContentSize = picker.frame.size;



此外,修复选择器视图的框架:


Also, fix the picker view's frame from this:

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

到此:

CGRectMake(0, 0, 320, 216)

这篇关于UIPopoverController太大而UIPickerView太小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆