如何将关闭按钮添加到 UIModalPresentationPageSheet 中显示的模态视图角?
Posted
技术标签:
【中文标题】如何将关闭按钮添加到 UIModalPresentationPageSheet 中显示的模态视图角?【英文标题】:how to add close button to modal view corner which is presented in UIModalPresentationPageSheet? 【发布时间】:2013-04-13 02:58:47 【问题描述】:我想在UIModalPresentationPageSheet
视图的角落添加一个浮动关闭 (x) 按钮。效果如下:
但是将它添加到父视图会使它出现在页面表的后面(并且也无法点击)并将其添加到页面表会使其部分隐藏,因为它不在视图区域之外。
有没有更好的解决方案?
欢迎提出任何建议。
【问题讨论】:
【参考方案1】:您可以尝试将其添加到最顶部的应用程序窗口:
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的框架。然后,您可以将按钮的原点设置为偏移并设置调整后的框架。
【讨论】:
好建议,如何定位按钮的位置? @chancy 我已经更新了我的答案,希望能为您的评论提供解决方案。【参考方案2】:看看这是否有效:
myPresentedView.clipsToBounds = NO;
这将允许按钮在其视图之外绘制自身。这样做的一个缺点是触摸不会超出视图边界,因此请尽量不要将按钮设置得太远。
【讨论】:
这行不通。我以前试过。该按钮仍将被剪裁。 clipsToBounds 对页面表内显示的视图没有影响,因为它不能超出页面表的边界以上是关于如何将关闭按钮添加到 UIModalPresentationPageSheet 中显示的模态视图角?的主要内容,如果未能解决你的问题,请参考以下文章
如何将可关闭的文本标签添加到 Textarea Kendo | jQuery