gpt4 book ai didi

ios - CGRectMake 将我的 UIButton 放在错误的位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:01 25 4
gpt4 key购买 nike

当我在程序中使用 CGRectMake 时,它的行为很奇怪。在 Interface Builder 中,我的按钮的坐标为 (260, 388) 并且始终处于纵向模式。当我输入以下代码(只是为了实验)时,它应该保持在同一个位置,X 值很好,但 Y 值将它放在更接近 300 的位置。

self.theButton.frame = CGRectMake(260, 388, 120, 120);

CGRectMake 中是否存在一些导致坐标变得异常的怪癖?没有其他代码行影响此按钮的大小或形状,当我注释掉此行时,按钮位于 IB 的正确位置。

编辑:自动布局未开启。编辑:问题似乎是我的代码关于框架 Y 值的概念与 IB 的概念不匹配。

此处按从上到下的顺序列出了按钮 1.1 到 3.2。根据 IB,按钮编号后的第一个数字是它们的(正确的)Y 值。第二个数字是根据 NSLog 的 button.frame.origin.y 得出的 Y 值。最后一个数字是差异。差异呈指数增长,每次增长 50 或 51。这显然是问题所在,我正在使用 IB 的 y 值系统设置我的 CGRectMake,但代码使用一些其他数字作为 Y 值。关于原因有什么想法吗?

按钮 -> IB Y 值 -> NSLog Y 值 -> 差异

1.1 -> 4 -> 5 -> 1

1.2 -> 132 -> 184 -> 52

1.3 -> 260 -> 362 -> 102

3.1 -> 388 -> 541 -> 153

3.2 -> 516 -> 719 -> 203

编辑:我的尺码检查员:

Size Inspector

这里的第一张图片是我的 IB 的一部分(正确)。第二张图片是当我运行程序时,您看到一个项目按钮与放大镜重叠(忽略低 alpha)。

IB correcdt Program incorrect

编辑:经过进一步试验,似乎使用 CGRect 移动 UIViews 完全可以正常工作,除非在 viewDidLoad 中使用它。我将代码移至 viewDidAppear,现在可以使用了。不知道为什么会这样,但确实如此。结束这个问题。

最佳答案

检查您如何读取 IB 中的 w.r.t 原点坐标。

enter image description here enter image description here

关于ios - CGRectMake 将我的 UIButton 放在错误的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17488652/

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