2

そのため、 WEPopoverを使用してカスタム ビュー コントローラーのポップアップを表示しています。内部にcontainerViewという別のUIViewがあるUIViewがあります。この containerView 内に、UIButton があります。これは、ポップオーバーを提示したかった場所です。だからここに私がしたことがあります:

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

問題は、矢印とすべてがこのボタンから表示されていることですが、ポップオーバーは self.containerView の境界から外れています。ポップオーバーが containerView 境界内に表示されるようにするにはどうすればよいですか?

編集:

写真は千の言葉に値するので、ここにあります: 薄い灰色は、上で述べた containerView です。理論的には、ポップオーバーは外に出ない明るい灰色の境界内に表示する必要があります。

ここに画像の説明を入力

4

1 に答える 1

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];

}

このメソッドを呼び出すと、ポップオーバーの位置が変更され、コンテナ ビュー内に配置される可能性があります。

于 2012-08-01T22:02:21.817 に答える