2012-08-01 41 views
2

所以我使用WEPopover来显示自定义视图控制器弹出。我有一个UIView,里面有另一个叫做containerView的UIView。在这个containerView里面,我有一个UIButton。这是我想要展示我的popover的地方。因此,这里是我所做的:presentPopoverFromRect从一个按钮超出界限

[self.popoverDialog presentPopoverFromRect:sender.frame inView:self.containerView permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 

的问题是,箭头,一切都从这个按钮有显示,但是酥料饼熄灭self.containerView界。我怎样才能让弹出窗口显示在containerView边界内?

编辑:

一张图片胜过一千字,所以在这里它是: 浅灰色的是我上述containerView。从理论上说,这个popover应该显示在那个浅灰色范围内,不会出现在外面。

enter image description here

回答

0

对于包含在里面酥料饼的观点,去它的视图控制器,并设置其属性contentSizeForViewInPopover。在这里,您可以设置大小以适合containerView的边界。

OP想定位弹出窗口,以便它只显示在他的容器视图中。我发现在WEPopoverController.m该位的代码文件

- (void)repositionPopoverFromRect:(CGRect)rect 
         inView:(UIView *)theView 
    permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections { 

CGRect displayArea = [self displayAreaForView:theView]; 
WEPopoverContainerView *containerView = (WEPopoverContainerView *)self.view; 
[containerView updatePositionWithAnchorRect:rect 
           displayArea:displayArea 
        permittedArrowDirections:arrowDirections]; 

popoverArrowDirection = containerView.arrowDirection; 
containerView.frame = [theView convertRect:containerView.frame toView:backgroundView]; 

}

你可能调用此方法,因此它现在是你的容器内VIW它可能重新定位你的酥料饼。

+0

我已经这样做了..尺寸很好..但只是想保持它的大小,这样它不会超出界限 – adit 2012-08-02 14:30:41

+0

你能提供一个图像吗?我无法理解你的意思是出界。它仍然完全在屏幕内吗? – 2012-08-02 14:53:16

+0

我添加了一张图片 – adit 2012-08-02 16:40:42