2011-03-30 3 views
1

콘텐츠 컨트롤러가 UINavigationController 인 UIPopOverController가 있습니다. 밀어 넣기/팝핑 된 컨트롤러의 내용 크기에 따라 팝업 크기의 크기를 조정하고 있습니다. 처음에는 메소드 presentPopoverFromRect:inView:permittedArrowDirections:animated:을 사용하여 popover를 나타냅니다. 앵커 위치는 인수로 전달한 rect의 중심을 가리 킵니다. navigationController에 컨트롤러 (컨텐츠 크기가 작은 컨트롤러)를 푸시하면 popover가 맨 아래에서 축소되고 앞서 언급 한 rect 위를 이동합니다.UIPopoverController 앵커 위치

나는 popover를 (push/pop을 위해) 매번 제시하려했으나, anchor position은 @ 같은 지점을 유지했다. 그러나 애니메이션이 영향을 받으면 좋지 않다.

앵커 위치를 만들기 위해 수행해야 할 작업은 popover 크기 변화의 변경과 관계없이 동일하게 유지됩니까?

답변

2

저도 같은 문제가 발생했습니다 그리고 다시 presentPopoverFromRect 메소드를 호출하면 동일한 위치

예에서 앵커를 유지할 것으로 보인다

[self.myPopOver presentPopoverFromRect:rectOrigin inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO]; 

는 UIPopoverController을 제시 한 후뿐만 아니라 귀하의 경우

0

변경 프레임을 작동 희망 :

[popupController presentPopoverFromRect:btn.frame inView:self.view permittedArrowDirections:0 animated:YES]; 

CGRect popupFrame = popupController.contentViewController.view.superview.superview.superview.frame; 
popupFrame.origin.y = btn.frame.origin.y + btn.frame.size.height+75; 

popupController.contentViewController.view.superview.superview.superview.frame = popupFrame; 
+1

안녕하세요! 수퍼 뷰 호출에서 기본 뷰를 1 회 이상 얻는 것은 좋지 않습니다. – LightNight

관련 문제