4

UIModalPresentationPageSheet我想在视图的一角添加一个浮动关闭 (x) 按钮。效果如下图:

在此处输入图像描述

但是将它添加到父视图会使其出现在页面表后面(并且也无法点击)并将其添加到页面表会使其部分隐藏,因为它不在视图区域之外。

有没有更好的解决方案?

任何建议表示赞赏。

4

2 回答 2

2

您可以尝试将其添加到最顶层的应用程序窗口:

    add.modalPresentationStyle = UIModalPresentationPageSheet;
    [self presentViewController:add animated:YES completion:^{
        [[[[UIApplication sharedApplication] windows] lastObject] addSubview:button];
    }];

这应该为您提供正确的视图,以允许按钮出现在模式顶部并接收触摸事件。

- 编辑 -

要定位按钮,您可以尝试以下操作:

self.modalPresentationStyle = UIModalPresentationFormSheet;
add.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:pvc animated:YES completion:^{
    CGRect parentView = pvc.view.superview.frame;
    CGRect buttonFrame = button.frame;
    buttonFrame.origin = CGPointMake(parentView.origin.x - buttonFrame.size.width/2.0f, parentView.origin.y - buttonFrame.size.height/2.0f);

    [button setFrame:buttonFrame];
    [[[[UIApplication sharedApplication] windows] lastObject] addSubview:button];
}];

这将获得已呈现的 modalView 的框架。然后,您可以将按钮的原点设置为偏移并设置调整后的框架。

于 2013-04-13T12:44:21.660 回答
0

看看这是否有效:

myPresentedView.clipsToBounds = 否;

这将允许按钮在其视图之外绘制自身。这样做的一个缺点是触摸不会超出视图边界,因此请尽量不要将按钮设置得太远。

于 2013-04-13T04:41:29.270 回答