Размер представления содержимого UIPopoverController - PullRequest
2 голосов
/ 22 июня 2011

У меня есть UIPopoverController, который я представляю из CGRect на iPad, вот так:

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 такой маленький? Я думал, что UIPopoverController использует размер содержимого по умолчанию, если setPopoverContentSize: не использовался. Спасибо.

1 Ответ

5 голосов
/ 22 июня 2011

CGRect, переданный в presentPopoverFromRect, является прямоугольником, всплывающее окно которого будет отображаться на некоторой стороне .Это не тот кадр, в котором появится всплывающее окно в .

Поскольку вы запрашиваете стрелку справа от всплывающего окна, оно пытается отобразить всплывающее окно слева от 20, 20, 700, 500.

Чтобы отобразить всплывающее окно на 20,20 (фактически там, где будет наконечник стрелки), передайте CGRect 20,20,1,1.

Возможно, вам все равно придется указать popoverContentSize.

...