2015-08-18 38 views
0

我面临一个奇怪的问题,关于在UIPopoverController中使用UIPickerView。我写这个任务通过下面的代码:UIPickerView里面的UIPopoverController:[UIPickerView setFrame:]:无效的高度值固定

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。我该如何解决这个问题?

谢谢

+0

检查我的回答我编辑过。 –

回答

0

添加选择器视图作为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); 
...