UIView的位置显然可以由view.centerview.frame等确定,但这只返回UIView相对于其直接SuperView的位置.

我需要确定UIView在整个320x480坐标系中的位置.例如,如果UIViewUITableViewCell中,它在窗口中的位置可能会发生巨大变化,而不考虑SuperView.

你知道这是不是可能,又是如何实现的?

干杯:)

推荐答案

这很简单:

[aView convertPoint:localPosition toView:nil];

...将局部坐标空间中的点转换为窗口坐标.可以使用此方法计算窗口空间中视图的原点,如下所示:

[aView.superview convertPoint:aView.frame.origin toView:nil];

2014 Edit:看着马特_C的 comments 的受欢迎程度,似乎有理由指出坐标……

  1. 旋转设备时不要更换.
  2. 始终将其原点置于未旋转屏幕的左上角.
  3. are window coordinates:由窗口边界定义的坐标系.屏幕和设备坐标系不同,不应与窗口坐标混淆.

Ios相关问答推荐

StackView UIKit间距似乎非常小的编程式编程

在Swift5中,将某些属性值从一个类复制到另一个类实例

如何在iPhone 15上消除.NET Maui中状态栏和页面之间的差距

iOS应用程序冻结在UICollectionView代码,但我没有';没有任何UICollectionViews

如何在Combine发布者之间强制执行最小延迟

创建 Flutter 项目时,如何从我的系统中删除特定的开发者身份?

不可发送类型 '[String : Any]?'在调用非隔离实例方法 XXX 时退出主参与者隔离上下文不能跨越参与者边界

Toast 不显示 Flutter

使用 SwiftUI 显示多个 VNRecognizedObjectObservation 边界框时偏移量错误

.frame() 修饰符的位置如何影响视图?

有没有办法访问自动生成的 Codable 一致性的编码键?

有哪些可靠的机制可以防止 CoreData CloudKit 中的数据重复?

通过MatchedGeometryEffect向上滑动视图

使用 RxDatasources 作为数据源时如何填充自定义页眉/页脚视图

UIScrollview 获取touch 事件

ios 崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS

如何更新推送通知服务证书

cocoapods中~>的用法是什么

正确使用 Alamofire 的 URLRequestConvertible

openURL:在 iOS 10 中已弃用