2011-06-30 38 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本身的大小調整錯誤。