2011-06-30 51 views
15

我不想调整PickerView的高度。我没事具有默认的大小,我相信这是320×216。我创造了这个代码在我popovercontroller呈现pickerView,但是,我得到的控制台上的消息:UIPopoverController UIPIckerView

011-06-30 13:18:28.125 MiGenome[64357:207] -[UIPickerView setFrame:]: invalid height value 1024.0 pinned to 216.0 
2011-06-30 13:18:28.126 MiGenome[64357:207] -[UIPickerView setFrame:]: invalid height value 448.0 pinned to 216.0 
2011-06-30 13:18:28.127 MiGenome[64357:207] -[UIPickerView setFrame:]: invalid height value -16.0 pinned to 162.0 

我不知道为什么我得到这个,因为我试图在弹出窗口中使用选择器默认大小。这是我的代码。谢谢。

- (IBAction)presentSortPopover { 
    UIViewController *sortViewController = [[UIViewController alloc] init]; 

    UIPickerView *sortPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, sortViewController.view.bounds.size.width, sortViewController.view.bounds.size.height)]; 
    sortViewController.view = sortPickerView; 
    sortViewController.contentSizeForViewInPopover = CGSizeMake(320, 216); 
    sortPickerView.delegate = self; 
    sortPickerView.dataSource = self; 
    sortPickerView.showsSelectionIndicator = YES; 

    self.SortPopover = [[UIPopoverController alloc] initWithContentViewController:sortViewController]; 
    [self.SortPopover presentPopoverFromRect:_sortButtonPop.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

    [sortPickerView release]; 
    [sortViewController release]; 
} 
+0

你的sortViewController的边界(大小/宽度)是什么?您将UIPickerView的框架设置为initWithFrame方法中的框架;如果它不是您想要的大小,您必须更改CGRectMake调用以包含正确的值。 – Zeppomedio

+0

是的,我最初也尝试过。我试图创建我的sortViewController框架为320,216,但我仍然在控制台上获得这些语句。另外,如果我将216的高度改为500,我不会看到任何改变。我只看到了改变,如果我改变了contentSizeForViewInPopover属性。 – Crystal

+1

这个问题有什么好运的。我有这个完全相同的问题。我认为Popover正在尝试调整选取器的框架。 – Bach

回答

1

我认为这条线是罪魁祸首。

UIPickerView *sortPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, sortViewController.view.bounds.size.width, sortViewController.view.bounds.size.height)]; 

尝试

UIPickerView *sortPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)]; 
+0

是的,这是我原来的。我试着最初制作矩形320,216,然后我想也许这是给我的问题。所以我试着不把它设置成一个数字,只是填写框架。不幸的是,我从两方面都遇到了错误。 : - \。感谢您的输入! – Crystal

10

我有同样的问题,直到我嵌入到通用UIView具有相同尺寸(0, 0, 320, 216)UIPickerView,视图控制器的视图属性设置为UIView

此外,我使用UIPopoverViewController上的setPopoverContentSize:animated:方法来设置弹出尺寸,而不是将其设置在UIViewController上。

希望有所帮助。

+1

我还得到了' - [UIPickerView setFrame:]:无效的高度值...错误,因为我在UIPickerView上设置了autoresizingMask。 –

1

UIViewController有一个方法叫做contentSizeForViewInPopover。 如果您使用它为您的视图控制器设置了预期大小(使用CGSize),您将能够防止UIPopoverController本身的大小调整错误。