2011-08-18 1 views
2

보기에 UIPopoverController이 있고 CGSize을 업데이트하는 다음과 같은 방법이 있습니다.setPopoverContentSize가 작동하지 않습니다.

-(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} 

? 그것은 특별히 풍경에서 발생 ...

답변

3

나는 장치 회전 중에 popover 컨트롤러의 크기를 변경할 수 없다는 점에서 비슷한 문제가있었습니다. answer to a similar question에서 해결책을 찾은 정보를 찾았습니다.

바 버튼에서 popover를 표시했기 때문에 UIKit은 회전하는 동안 popover의 크기를 조정하여 "시도"했습니다 (버튼 위치가 다른 장치 방향으로 변경된 후에 달라질 수 있음) . popover가 모든 경우에 어떤 크기가 될지 알고 있었지만 setPopoverContentSize에 대한 호출을 존중하지 않았습니다. 내 해결책은 willAnimateRotationToInterfaceOrientation에서 popover를 취소 한 다음 didRotateFromInterfaceOrientation에 동일한 popover를 다시 표시 한 다음 contentSizeForViewInPopover 및 popoverContentSize에 대해 적절한 값을 설정 한 다음 IHTH

+0

좋은 아이디어는 이전에 이것에 대해 생각해 보지 않았습니다. 감사! –

관련 문제