我有一个UIPopoverController,我在iPad上的CGRect中呈现如下:
MarkersPopViewController *markersPop = [[MarkersPopViewController alloc] initWithNibName:@"MarkersPopView" bundle:nil];
self.TestPopoverController = [[[UIPopoverController alloc] initWithContentViewController:markersPop] autorelease];
[TestPopoverController presentPopoverFromRect:CGRectMake(20, 20, 700, 500) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
My MarkersPopView是一个容器视图,它有一个UITableView占用了大量的.xib,而UISegmentedControl就在UITableView的顶部。 UITableView使用UITableViewCell的自定义子类,其中每一行都是(700,100)。
当我运行我的应用程序时,PopoverController可能只有50个点宽并且拥抱屏幕的左侧。我想让视图适合初学者,然后居中。 UIPopoverController有这么小的原因吗?我认为如果没有使用setPopoverContentSize:,UIPopoverController将使用内容视图的默认大小。感谢。
答案 0 :(得分:5)
传递给presentPopoverFromRect的CGRect是弹出窗口将在某些侧上显示的矩形。这不是popover在中出现的框架。
由于您要求弹出窗口右侧的箭头,它会尝试显示左侧20,20,700,500的弹出窗口。
要显示20,20的弹出窗口(实际上是箭头尖端的位置),请传递一个20,20,1,1的CGRect。
您可能仍需要指定popoverContentSize。