UIPopoverController inRect问题

时间:2011-03-26 13:24:57

标签: iphone objective-c uipopovercontroller rect

我有一个UIViewController,它包含一个UIView子类作为子视图。在子视图中,我动态创建另一个UIView。当创建最里面的视图时,UIViewController通过委托告知它必须显示一个UIPopovercontroller,其箭头必须指向最内层的视图。在委托方法调用中,我还传递最内部视图的原点,以便UIViewcontroller使用此CGPoint来创建弹出控制器。问题是UIPopovercontroller没有定位在所需的位置。

MyController* myController = [ [ MyController alloc] init]; 
UINavigationController *aNavController = [[UINavigationController alloc]                    initWithRootViewController: myController];
self.popOver = [[[UIPopoverController alloc]
                initWithContentViewController:aNavController] autorelease];
[aNavController release];

CGRect rect;
//CGPoint p = CGPointMake(currentPage.frame.size.width/2, currentPage.frame.size.height/2); 
rect.origin = point;    //here point is the origin of the inner most view
rect.size = self.view.frame.size;
[self.popOver presentPopoverFromRect: rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

我在此代码中缺少的是强制弹出窗口偏离位置而不是在所需位置。

由于

2 个答案:

答案 0 :(得分:0)

我认为您没有将正确的观点传递给您的popOver,请检查一次......

[self.popOver presentPopoverFromRect: rect inView:myInnerView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

答案 1 :(得分:0)

你展示你的弹出窗口的rect可能太大了。

您可以将其设置为整个视图的大小,而不是最内部视图的大小。