2012-11-08 34 views
0

我有下面的代碼來打開一個320px x 320px UIPopoverController,但由於某些原因,彈出窗口比它應該高得多 - 大約是我指定的高度的兩倍(320px)。爲什麼UIPopoverController這麼高?

出了什麼問題?

colorPicker = [[RSColorPickerView alloc] initWithFrame:CGRectMake(20.0, 20.0, 320.0, 320.0)]; 
    [colorPicker setDelegate:self]; 
    [colorPicker setBrightness:1.0]; 
    [colorPicker setCropToCircle:YES]; 
    [colorPicker setBrightness:1.0]; 
    [colorPicker setBackgroundColor:[UIColor clearColor]]; 

    UIColor * aColor = [UIColor colorWithRed:0.803 green:0.4 blue:0.144 alpha:1]; 
    [colorPicker setSelectionColor:aColor]; 

    UIView *newview = [[UIView alloc] initWithFrame:CGRectMake(20.0, 20.0, 320.0, 320.0)]; 
    [newview addSubview:colorPicker]; 

    UIViewController *newviewcontroller = [[UIViewController alloc] init]; 
    [newviewcontroller setView:newview]; 

    UIPopoverController *newpopover = 
    [[UIPopoverController alloc] initWithContentViewController:newviewcontroller]; 

    newpopover.delegate = self; 
    [self.colourController setPopoverContentSize:CGSizeMake(320, 320)]; 
    self.colourController = newpopover; 

    [self.colourController presentPopoverFromRect:CGRectMake(149, 540, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES]; 

回答

2

您需要在彈出窗口中顯示的視圖控制器上設置popoverContentSize。您正在將其設置在錯誤的視圖控制器上。

newpopover.delegate = self; 
self.colourController = newpopover; 
[self.colourController setPopoverContentSize:CGSizeMake(320, 320)]; 

你在做這些最後兩行不按順序。

+0

乾杯!愚蠢的錯誤:) –