【问题标题】:Moving a view and changing the image of uiimageview is not performing the move of the view移动视图并更改 uiimageview 的图像不执行视图的移动
【发布时间】:2012-10-15 22:40:44
【问题描述】:

我有一个非常简单的情况:在一个视图中我有一个 UIImageView 和一个 UILabel。在某个时刻,我想更改标签的位置,并以相同的方法更改 uiimageview 的图像。

self.myLabel.center = CGPointMake(158, 230);
self.myImageView.image = [UIImage imageNamed:@"anotherImage.png"];

但是这段代码只会改变图像,不会移动标签。如果我注释掉第二行并运行代码,那么标签将改变位置。

有人知道为什么不工作吗?或者这个问题的有效解决方法?

【问题讨论】:

  • 这很奇怪。您确定 100% 会发生这种情况吗?没有理由这样做!
  • 是的,我确定,我已经做了多次测试
  • 你能告诉我们整个方法吗?
  • 这是我的方法中仅有的两行:(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
  • 哦,对了。您是否也返回是/否?你需要。

标签: ios cocoa-touch uiview uiimageview


【解决方案1】:

我刚刚测试了上面的代码,它工作正常。当键盘弹出时,标签移动并且图像变化良好。您的程序中的问题必须很简单,但不是上面的代码。

现在我们有了 iOS6,每当我看到有关通过代码更改 frame 坐标的帖子似乎无法正常运行时,我立即怀疑自动布局设置:

确保取消选中该选项,否则基于约束的逻辑将覆盖任何通过代码手动调整设置的尝试。 (或者,如果您想使用 Autolayout,而不是设置框架坐标,请以编程方式调整您的约束以达到所需的结果。)

无论如何,这听起来像是你的问题。很高兴你解决了!

【讨论】:

  • 是的,这正在解决问题,奇怪的是:当我没有更改 uiimageview 的图像时,我的标签坐标的更改工作正常。谢谢你,罗伯。
  • 是的,我对此感到惊讶,但也许图像的设置正在重新触发“应用约束”逻辑。我不完全确定。但至少我们知道根本问题。
猜你喜欢
  • 2014-10-16
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多