UIPopoverController中的UIPIckerView

时间:2011-06-30 20:24:10

标签: iphone uipickerview uipopovercontroller

我不是要尝试调整PickerView的高度。我没有默认大小,我相信是320 x 216.我创建了这个代码,在我的popovercontroller中提供了一个pickerView,但是,我在控制台上收到了这些消息:

2

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 

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

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

3 个答案:

答案 0 :(得分:10)

在将UIPickerView嵌入到具有相同维度UIView的通用(0, 0, 320, 216)中之前,我遇到了同样的问题,并将视图控制器的视图属性设置为UIView

另外,我使用setPopoverContentSize:animated:上的UIPopoverViewController方法来设置弹出窗口维度,而不是在UIViewController上设置它。

希望有所帮助。

答案 1 :(得分: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)];

答案 2 :(得分:1)

UIViewController有一个名为contentSizeForViewInPopover的方法。 如果您使用它设置视图控制器的预期大小(使用CGSize),则可以防止UIPopoverController错误地调整大小。