gpt4 book ai didi

ios - CGRect根据中心点定位

转载 作者:可可西里 更新时间:2023-11-01 04:10:00 26 4
gpt4 key购买 nike

我正在尝试为 iPad 应用程序创建多个 View 。首先,我创建了一个菜单 View ,然后根据菜单创建了一个带有坐标的子菜单 View 。所以它看起来像这样:

enter image description here

我做了什么:

self.view = [[UIView alloc] initWithFrame:CGRectMake(self.parentViewController.view.frame.size.width, 0, 150, screenHeight)];

但是现在在子菜单上我正在尝试创建内容 View ,它是一个 UINavigationController。尝试做同样的事情,我得到了这个结果:

enter image description here

我在做什么(这次是在子菜单 View Controller 上创建框架):

CGRect frame = CGRectMake(self.view.frame.origin.x + self.view.frame.size.width,
0,
[[UIScreen mainScreen] bounds].size.width - self.view.frame.origin.x - self.view.frame.size.width,
[[UIScreen mainScreen] bounds].size.height);

这是不言自明的,但我只是获取子菜单原点并添加其宽度,以便获得右边缘坐标。

经过多次尝试我设法让它工作,因为我注意到 CGRectMake 正在使用 UINavigationController View 的中心来安排它的位置。所以下面的代码:

CGRect frame = CGRectMake(self.view.frame.origin.x + self.view.frame.size.width + 259,
0,
[[UIScreen mainScreen] bounds].size.width - self.view.frame.origin.x - self.view.frame.size.width,
[[UIScreen mainScreen] bounds].size.height);

产生正确的位置。

这是怎么回事?我以为 CGRectMake 原点总是左上角,但在这个特别的 View 上实际上是中上(或中中,不确定。)我做错了什么?

编辑 1:

这是正确位置的框架的控制台输出:

enter image description here

注意导航栏现在是如何定位在右边的:

enter image description here

但是 x 坐标不是 250(应该是,因为 menu.width + sub-menu.width = 250。)

编辑 2:

我最终放弃了。问题出在自动生成的 UINavigationBar 上,它是由 UINavigationViewController 创建的。我似乎无法弄清楚如何配置它。如果有人知道答案,我将把问题悬而未决。

最佳答案

CGRect 的中心是从 origin.x + ( size.width/2 )origin 创建的 CGPoint .y + ( size.height/2 ).

关于ios - CGRect根据中心点定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18189572/

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