我想在按钮单击事件上打开一个弹出窗口。
如下图所示:


但是我得到的是:



我用于弹出窗口的代码是:

PopOver *PopOver_obj=[[PopOver alloc]initWithNibName:@"PopOver_ipad" bundle:nil ];
UIPopoverController  *popoverController = [[UIPopoverController alloc] initWithContentViewController:PopOver_obj];
popoverController.delegate = self;
CGSize maximumLabelSize = CGSizeMake(320.0f,200.0f);
popoverController.popoverContentSize = maximumLabelSize;
CGRect rect = CGRectMake(100,100, 200.0f, 100.0f);
[popoverController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

最佳答案

更新

对于iOS 5,您可以使用弹出框的popoverLayoutMargins属性设置相对于设备屏幕边缘的插图。有关更多详细信息,请参见this



据我从您的屏幕快照中看到的,您有一个黑色的视图和一个白色的视图,但是您在其超级视图中显示了弹出窗口。

您可以尝试使用- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated方法,并将白色视图作为方法的view参数传递,并将UIPopoverArrowDirectionUp传递给arrowDirections argument

我认为这可能会限制弹出窗口超出视图范围,从而将其保留在+按钮下。

让我知道是否有帮助。

09-18 19:16