UIPickerView inside UIPopoverController: [UIPickerView setFrame:]: 固定的高度值无效

UIPickerView inside UIPopoverController: [UIPickerView setFrame:]: invalid height value pinned

关于在 UIPopoverController 中使用 UIPickerView,我遇到了一个奇怪的问题。我通过以下代码编写此任务:

    UIPickerView *select = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)];
    select.delegate = self;
    select.dataSource = self;

    UIViewController *sortViewController = [[UIViewController alloc] init];
    sortViewController.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)];

    sortViewController.view = select;
    sortViewController.preferredContentSize = CGSizeMake(320, 216);

    self.provincePickerPopover = [[UIPopoverController alloc] initWithContentViewController:sortViewController];
    self.provincePickerPopover.popoverContentSize = CGSizeMake(320, 216);
    self.provincePickerPopover.delegate = self;

    [self.provincePickerPopover presentPopoverFromRect:self.provinceField.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

问题是弹出窗口启动时,出现了以下错误:

[UIPickerView setFrame:]: invalid height value 229.0 pinned to 216.0 

在我的代码中很明显,我从未使用 229 作为 UIPickerView 的高度。我该如何解决这个问题?

谢谢

将选取器视图添加为 UIViewController 视图的子视图。这将摆脱错误。所以,像这样:

 ...
 UIViewController *sortViewController = [[UIViewController alloc] init];
 sortViewController.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)];

 [sortViewController.view addSubview:select]
 sortViewController.preferredContentSize = CGSizeMake(320, 216);
...