【问题标题】:Trying to position a button programmatically, however not in right position according to X,Y尝试以编程方式定位按钮,但根据 X,Y 不在正确位置
【发布时间】:2013-02-19 18:12:41
【问题描述】:

我正在尝试定位一个按钮。

这是定位的代码..

[btnAbs setFrame:CGRectMake(57, 50, 106, 99)];

我得到的坐标来自这里:

如您所见,xib 统计 x 和 y 分别为 57 和 192,这是我希望按钮所在的位置。

但是,当我在模拟器中运行它时,它的放置位置如下:

显然我可以不断地猜测和猜测 x 和 y 坐标,但这非常耗时。那么它是怎么做到的呢? 请在查看图片时将链接连接在一起,因为我需要超过 10 个代表来发布图片,或者请修改此问题?

【问题讨论】:

  • 您在哪个设备上运行模拟? iPad 还是 iPhone?
  • iPhone 3.5" 是设备

标签: iphone ios cocoa-touch cgrect cgrectmake


【解决方案1】:

问题出在这里:

Interface Builder 中的“原点”实际上并不影响视图以编程方式定位的方式——它只是一种视觉辅助。如果您单击该框左上角的点,X 和 Y 坐标将更改为视图的左上角,这是您要传递给 -setFrame: 的坐标。

【讨论】:

  • 这很奇怪,但它确实会影响它。在使用 GUI 构建器时,我多次注意到事情并没有出现在我认为应该出现的地方,因为我在 IB 中选择了不同的对齐机制。如果您在 IB 中查看他的图像,位置显示它仅距左侧几个像素,但他的 x 坐标。是 57 = ~ 106 / 2。在 IB 中,它根据您的设置放置您的对象,但在代码中它仅在左上角进行。显然,您是正确的,但它不会以编程方式影响它:-)
  • 嘿,完美的答案。非常感谢! :-)
【解决方案2】:

在我看来,就好像您让 GUI 设计器根据图像视图的中心对齐。当您在代码中执行此操作时,它将根据图像视图的左上角对齐。

此外,您的代码将其放置在 y 为 50,您的 GUI 设计器显示 y 坐标。 192 个。

【讨论】:

  • +1。在 IB 中将对齐设置为左上角,您将获得正确的坐标以输入到 setFrame:
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多