iOS 无法以编程方式设置元素位置

Posted

技术标签:

【中文标题】iOS 无法以编程方式设置元素位置【英文标题】:iOS unable to set element position programmatically 【发布时间】:2012-05-29 19:00:53 【问题描述】:

我无法以编程方式设置标签和图像位置。我试图设置为,

navBarSocial.frame = CGRectMake(navBarSocial.frame.origin.x, navBarSocial.frame.origin.y, webView1.frame.size.width, navBarSocial.frame.size.height);

 status.frame = CGRectMake(100, 50, status.frame.size.width, status.frame.size.height);
 loadingImage.frame = CGRectMake(100, 50, loadingImage.frame.size.width, loadingImage.frame.size.height);

navBarSocial 适当增加其宽度,但标签(状态)和 loadingImage 保持在同一位置。我还在 xib 上设置了自动调整大小的属性,但没有成功。

【问题讨论】:

【参考方案1】:

不确定您的问题。您谈到位置,这是有道理的,它们与您将它们静态设置为 x = 100 和 y = 50 时保持在相同的位置。就尺寸而言,您似乎将尺寸设置为项目的当前尺寸。换句话说,您将当前大小作为您想要设置的元素的大小传递给您尝试调整大小。

【讨论】:

元素不在所需的位置 100、50 但必须在执行之后。不是试图调整大小!只有 pos 设置。我也可以使用 CGPointMake 但结果相同 我以前见过这种情况,它确实发生在我为 MacOS X 和 ios 编写的程序中。只是出于好奇,如果在设置框架后放置:[status setNeedsLayout] 和 [loadingImage setNeedsLayout] 或 [superview setNeedsLayout] 会发生什么???【参考方案2】:
 loadingImage.frame = CGRectMake(100, 50, loadingImage.frame.size.width, loadingImage.frame.size.height);

loadingImage 将宽度设置为宽度,将高度设置为高度。你期望改变什么?您可能需要将宽度和高度更改为与已有的不同的值.. 设置几何图形应在viewWillAppear:viewDidAppear 方法中完成。还要检查您的插座连接。 顺便说一句,只使用属性,而不是 ivars。

【讨论】:

不,我只想设置一个新位置,而不是它的宽度和高度!像 CGPointMake。插座是正确的,因为我正确设置了其他属性并且位置需要在执行时而不是在建议的事件上设置:( 因此,当您将原点更改为不同于 100,50 的内容时,它不会更改位置吗? 就是它的作用,没有变化 看看你是不是从主线程以外的其他线程改变它?

以上是关于iOS 无法以编程方式设置元素位置的主要内容,如果未能解决你的问题,请参考以下文章

可以以编程方式重置位置和隐私设置吗?

你如何覆盖 iOS 上的故事板元素/视图?

iOS 数据驱动以编程方式设置视图和操作?寻求建议

以编程方式在iOS中启用位置服务

iOS:以编程方式创建 UIWindow 导致位置错误

如何以编程方式使应用程序图标位置固定在跳板中