我不是要尝试调整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];
}
答案 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
错误地调整大小。