2012-01-11 23 views
0

如何更改UIPickerView的寬度在客觀C,我現在用的是下面的代碼,如何更改UIPickerView的寬度目標C

tempFiled = Data; 
    [tempFiled resignFirstResponder]; 
    CGSize sizeOfPopover = CGSizeMake(200, 200); 
    CGPoint positionOfPopover = CGPointMake(32, 325); 
    [popOverControllerWithPicker presentPopoverFromRect:CGRectMake(positionOfPopover.x, positionOfPopover.y+10, 500, sizeOfPopover.height) 
     inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 

但是,當我試圖改變寬度CGSize sizeOfPopover = CGSizeMake(200,200);它沒有改變,我想減少選擇器的大小。

+0

讓我猜...的酥料餅的大小的改變,但不裏面的'UIPickerView'? – 2012-01-11 05:35:20

+1

「UIPickerView」的寬度是一種無證魔術。只有幾個值可以正常工作,基本上是縱向或橫向的iPhone寬度(320點或640點)。它不喜歡成爲別的東西。不幸的是,這種行爲沒有記錄。 – 2012-01-11 05:37:23

+0

你可以在彈出窗口內改變'UIPickerView'的框架屬性嗎?這可能會讓你改變高度和寬度.... – 2012-01-11 05:46:33

回答

1

我有這個問題,解決這樣說:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    CGRect frame = bpsPicker.frame; 
    frame.size.width = 100; // width to be displayed on popover controller 
    bpsPicker.frame = frame; 

} 

使用viewDidLoad中()是太早來改變這個值。

要清楚的是viewWillAppear中在傳遞給UIPopover(這裏稱爲「MyViewController.m」)的UIViewController的。所以,

self.myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil] ; 
self.myViewController.delegate = self; 
self.myViewController.contentSizeForViewInPopover = CGSizeMake(320, 360); // or whatever 

self.myViewControllerPopover = [[UIPopoverController alloc] initWithContentViewController:self.myViewController] ; 

[self.myViewControllerPopover presentPopoverFromBarButtonItem:self.myToolBarButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];