我有一个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];
我在此代码中缺少的是强制弹出窗口偏离位置而不是在所需位置。
由于
答案 0 :(得分:0)
我认为您没有将正确的观点传递给您的popOver,请检查一次......
[self.popOver presentPopoverFromRect: rect inView:myInnerView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
答案 1 :(得分:0)
你展示你的弹出窗口的rect
可能太大了。
您可以将其设置为整个视图的大小,而不是最内部视图的大小。