gpt4 book ai didi

ios - UIView绝对屏幕点

转载 作者:行者123 更新时间:2023-11-28 18:00:08 30 4
gpt4 key购买 nike

有没有简单的方法获取UIView的绝对点?绝对是指 iPad 上 UIView 相对于 1024x768 的位置?

我需要一种简单的方法,因为我在 UITableViewCell 中有一个 UIButton,在 UITableView 中,在 ViewController 呈现的 View 中,该 View Controller 是另一个 View Controller 的子项,重复到第五或第六个 View Controller 。由于这种复杂的设计,我需要 UIButton 的绝对矩形,这样我就可以在“主” View Controller 上显示 UIActionSheet。

最佳答案

所以,我们有一个内部有特定点的小 View 。该点相对于其父 View (小 View )具有局部坐标。现在,我们想知道,该点的坐标是什么,如果它留在屏幕上的同一位置,但它将成为 Root View 的一部分。 (这有效地为我们提供了相对于整个屏幕的坐标。)

您将计算该点的全局坐标

CGPoint globalCoordinates = [self.smallView convertPoint:localCoordinatesOfThePoint 
toView:self.view];

localCoordinatesOfThePoint 也是一个 CGPoint 结构。

另一种情况

当你用 Root View 覆盖整个屏幕时,它有一个大 View (虽然仍然比 Root View 小),并且这个大 View 有一个小 View 作为它里面的 subview 。

您将计算小 View 提示的位置

CGPoint originOnScreen = [self.smallView convertPoint:self.smallview.origin 
toView:self.view];

self.smallview.origin 是一个相对于 Large view 的 CGPoint。因此,我们计算,如果这个点(它实际上是小 View 的左上角)在 Root View 内,它的坐标是多少。

捕获

如果 Root View 不是全屏,而不是 Root View ,我们需要获取对主窗口的引用,因为这将是我们现在计算坐标的 View 。

我们必须

#import "AppDelegate.h"

在我们计算的类中,然后将 window 属性作为引用 View 传递。保证窗口覆盖屏幕,UIWindow 是 UIView 的子类。所以它才有效。

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

CGPoint originOnScreen = [self.smallView convertPoint:self.smallview.origin
toView:appDelegate.window];

关于ios - UIView绝对屏幕点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863796/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com