Popovercontroller doesn't display full
- by user2959234
I have an UIPopovercontroller in with an content that generate from an viewcontroller.
popOverController = [[UIPopoverController alloc]initWithPopUp:emLightPopUp];
popOverController.delegate = self;
// Get device position.
CGRect position = {parentButton.frame.origin,emLightPopUp.popUpView.frame.size};
CGSize popUpViewFrameSize = emLightPopUp.popUpView.frame.size;
Link screenshot: http://i.stack.imgur.com/AxqoG.png
The issue is that when I change the position of select devices (touched button) upwards, the displayed popup will be resized like the screenshot.
I already try to set content size inside the subclass of uipopover but it still doesn't work:
self.popoverContentSize = emLightPopUp.popUpView.frame.size;
EDIT:
I solved this problems by calculate the position that display the popup and scroll the scrollview inside into an upper position. Check out this code:
-(void)moveDeviceOutMiddleScreen:(id)deviceButton
{
UIButton* button = (UIButton*)deviceButton;
CGFloat yPositionRange = button.frame.origin.y - self.floorZoomScrollView.contentOffset.y;
int middle_top_y = 70;
int middle_bottom_y = 166;
if (yPositionRange > middle_top_y && yPositionRange < middle_bottom_y) {
CGRect newRect = CGRectMake(self.floorZoomScrollView.contentOffset.x,
self.floorZoomScrollView.contentOffset.y +yPositionRange*0.6,
self.floorZoomScrollView.frame.size.width, self.floorZoomScrollView.frame.size.height);
[self.floorZoomScrollView scrollRectToVisible:newRect animated:NO];
}
}
Thanks for your responses.