iOS - 获取窗口中视图的位置?
我有一个 UIView,单击后会显示一个弹出窗口。 需要将弹出窗口添加到主 UIWindow 以确保它位于其他所有内容之上。
我希望此弹出窗口的位置相对于我的 UIView,因此我需要知道 UIView 在窗口中的相对位置。
问题:当 UIView 不直接位于 UIWindow 中(它位于我的 viewController 的视图内)时,如何在 UIWindow 中找到 UIView 的位置?
I have a UIView that displays a popup after it's been clicked.
The popup needs to be added to the main UIWindow to make sure that it goes on top of everything else.
I want the position of this popup to be relative to my UIView, so I need to know the relative location of my UIView in the window.
Question: How can I find the location of a UIView in a UIWindow when the UIView is not directly in the UIWindow (It's inside the view of my viewController)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
使用时可以使用UIView方法covertRect:toView来转换到新的坐标空间。我做了一些非常类似的事情:
在我的示例中, self 是一个视图,正在从其 superView 中删除并添加到窗口上方的位置。 toView: 中的 nil 参数表示使用窗口而不是特定视图。
希望这有帮助,
戴夫
Use can use the UIView method covertRect:toView to convert to the new co-ordinate space. I did something very similar:
In my example, self is a view that is being removed from its superView and added to the window over the top of where it was. The nil parameter in the toView: means use the window rather than a specific view.
Hope this helps,
Dave
您可以要求您的
.superview
为您转换您的origin
You can ask your
.superview
to convert yourorigin
for you for youUIView的convertPoint:toView:不起作用吗?所以:
Does UIView's convertPoint:toView: not work? So:
我需要在 Xamarin.iOS 中执行此操作
对于在那里寻找解决方案的任何人,最终对我有用的是:
I needed to do this in Xamarin.iOS
For anyone looking for a solution there, what eventually worked for me was:
Swift 5 实用程序
对于 UIScrollView 的用法
略有不同
Swift 5 utility
Usage
For UIScrollView it is slightly different
下面的 Xamarin.iOS 实现对我有用。
传入您想要相对于 Window 的框架的视图。
Below Xamarin.iOS Implementation Worked For Me.
Pass in the view whose frame you want with respect to Window.