setPopoverContentSize не работает - PullRequest
       4

setPopoverContentSize не работает

2 голосов
/ 18 августа 2011

У меня есть UIPopoverController в представлении, и следующий метод для обновления его CGSize:

-(void)updatePop:(CGSize)newSize
{
    NSLog(@"New Size: %@", NSStringFromCGSize(newSize));    
    [popoverSearch setPopoverContentSize:newSize animated:YES];
    NSLog(@"popoverContentSize: %@", NSStringFromCGSize(popoverSearch.popoverContentSize));
}

Когда метод запускается, консоль показывает следующее:

New Size: {320, 640}
popoverContentSize: {320, 409}

Кто-нибудь имеет представление, почему это происходит? Это происходит специально в ландшафте ...

1 Ответ

3 голосов
/ 17 сентября 2011

У меня была похожая проблема в том, что я не смог изменить размер контроллера поповера во время вращения устройства. Я нашел информацию, которая привела к моему решению в ответе на аналогичный вопрос .

Поскольку я представлял всплывающее окно с помощью кнопки «Бар», UIKit «пытался» помочь, регулируя размер всплывающего окна во время вращения (поскольку положение кнопки может отличаться после изменения ориентации устройства). Несмотря на то, что я точно знал, какого размера я хочу, чтобы поповер был в каждом случае, он не уважал мои вызовы setPopoverContentSize. Мое решение состояло в том, чтобы отклонить popover в willAnimateRotationToInterfaceOrientation, а затем повторно представить тот же popover в didRotateFromInterfaceOrientation после установки соответствующих значений для contentSizeForViewInPopover и popoverContentSize. IHTH

...