我想在窗口坐标系中获取scrollView的原点。例如,目前,scollView的原点是(0,51)。但在窗口坐标系中,它应该是51 + 44(导航栏高度)+20(状态栏高度)= 115。在窗口坐标系中,scrollView.frame.origin应该是(0,115)。我尝试使用convertPoint:方法,但有时会得到(0,51)或(0,0)。请为此提供解决方案。谢谢将UIView原点转换为其窗口坐标系
回答
我试着用TechZen解决方案但无济于事。我没有转换scrollView的原点,而是使用此代码[self.view convertPoint:endCentre fromView:[UIApplication sharedApplication].keyWindow]
将AppleDocument UIWindow class Reference引用并将键盘的endCenter转换为我的视图的坐标系。这段代码起作用,因此解决了我的问题。 但是,问题仍然是为什么它没有给出scrollView.origin.So的适当坐标,基本上我通过转换键盘endcenter而不是scrollView.origin得到了解决方法。哦,我正在做所有这些工作,以便在键盘出现在屏幕上时计算我的scrollView的新高度。所以,如果有人有解决这个问题或更好的解决方案,请让我们所有人知道。
这听起来像你没有转换适当的意见。视图的框设置为它的上海华盈,而不是它自己的内部坐标,所以如果你想转换一个视图窗口坐标原点,你就需要使用上海华盈的坐标:
[[self superview] convertPoint:self.frame.origin toView:theWindow];
然而,将视图本身的零点转换到窗口更加简单。这两段代码是等价的,所以根本不需要使用原点。
[self convertPoint:CGPointZero toView:theWindow];
请注意,这些功能只会在视图控制器完成子视图布局后才起作用。所以,如果你想,当视图加载,你可以使用viewDidLayoutSubviews/viewDidAppear,但不是在viewDidLoad中/ viewWillAppear中等等
此代码为我工作:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
CGPoint originInSuperview = [self.view.superview convertPoint:CGPointZero fromView:self.scrollView];
}
雨燕2.1:
在viewDidAppear(否则元素还不分层)您的ViewController的:
var yourFrame = yourScrollView.convertRect(yourScrollView.frame, toView: self.view)
//PRINT THE WHOLE RECT
print(yourFrame)
//PRINT A DETAILED VERSION OF THE FRAME, ALSO CAN PERFORM CALCULATION BETWEEN THE RECT PARAMETERS TO GET , FOR EXAMPLE, WIDTH POINT IN THE SUPERVIEW:
print("X: \(yourFrame.origin.x) Y: \(yourFrame.origin.y) WIDTH: \(yourFrame.width) HEIGHT: \(yourFrame.height)")
在Swift 3中: var yourFrame = yourScrollView.convertRect(yourScrollView.frame,to:self.view) – Medhi 2016-10-26 10:02:24
- 1. 将CGPoint从UIView坐标系转换为CALayer坐标系
- 2. 在OpenGL中将窗口坐标转换为轴坐标
- 3. 如何将窗口坐标转换为2D OpenGL ES坐标?
- 4. 将给定点从窗口的基本坐标系转换为屏幕坐标系
- 5. 将屏幕坐标转换为UIView本地点
- 6. 如何将ContextMenuEventArgs光标位置转换为窗口坐标
- 7. Math:将坐标系转换为其他系统
- 8. 将坐标转换为旋转坐标系
- 9. 如何将窗口坐标转换为标准化的设备坐标?
- 10. 将坐标系转换为游戏板
- 11. MonoTouch/MonoDroid - 将原始触摸坐标转换为屏幕坐标
- 12. 将屏幕转换为WPF坐标而不显示窗口
- 13. 转换UIKeyboardFrameEndUserInfoKey查看或窗口坐标
- 14. 将视图端口坐标转换为实际图像坐标
- 15. 将屏幕坐标转换为坐标
- 16. 将坐标转换为像素坐标
- 17. 将坐标转换为另一个坐标系
- 18. 更改坐标原点在UIView的
- 19. 将点坐标转换为JavaFX中的屏幕坐标?
- 20. 如何将顶点坐标转换为屏幕像素坐标?
- 21. 转换NSPoint在屏幕坐标窗口坐标
- 22. 转换查看坐标,窗口坐标SFML
- 23. 将WPF BitmapSource转换为窗口图标
- 24. 如何将SubView的框架坐标系转换为Self View的坐标系
- 25. 将四元数从右手坐标系转换为左手坐标系
- 26. 如何将投影坐标系worldfile转换为地理坐标系worldfile?
- 27. 转换点坐标到一个新的坐标系
- 28. 坐标系统转换
- 29. 将坐标调查坐标转换为有效的esri坐标
- 30. Swift在UIView Coordinate System中转换坐标
斯威夫特版本向下跌破 – 2015-11-23 19:58:26