【问题标题】:Get the position of a UIImageView获取 UIImageView 的位置
【发布时间】:2014-12-10 18:20:37
【问题描述】:

我有一个具有可变 X 和 Y 坐标的现有 UIImageView。图片应该根据当前位置差异移动,但我不知道我如何获得当前位置。

picture = UIImageView(frame: CGRectMake(corx, cory, 25, 25))

希望你能帮帮我。

【问题讨论】:

  • 如果您发现任何有用的答案,您应该接受其中一个……这就是礼仪:)
  • 还没来得及尝试答案。如果我找到有用的答案,我会接受。

标签: ios swift uiimageview uiimage


【解决方案1】:

您可以通过两种不同的方式获取视图的坐标。

picture.bounds - 边界矩形,描述视图在其自身坐标系中的位置和大小。

picture.frame - 框架矩形,描述视图在其父视图坐标系中的位置和大小。

在这两种情况下,尺寸分量应该相同。

在下面的代码中,origin 将是您原始坐标的点 (corx,cory)。

CGPoint origin = picture.frame.origin

您可能希望使用 picture.frame.origin 为您的视图设置动画。一旦你创建了你的实例并调整这个新框架的原点,你总是可以说picture.frame = <new frame>

例子

CGRect r = picture.frame;
r.origin.x += 10;
r.origin.y += 10;
picture.frame = r;

但这不会是一个平滑的动画 - 您可以使用 CoreAnimation 为 frame 属性设置动画以实现平滑的过渡。

希望对你有帮助

【讨论】:

    【解决方案2】:

    只要得到图片的框架:

    picture.frame.origin.x
    picture.frame.origin.y
    

    【讨论】:

    • 为什么要改变你原来的答案:picture.frame.origin.x 等等......这似乎更清楚/正确......
    • 好点。我正在重新阅读这个问题,并认为他的意思是一般观点。但你是对的——图片更有意义
    【解决方案3】:

    使用您想要作为基础的视图框架中的 x 和 y 坐标。从 UIView 继承的任何东西都会有一个与之关联的框架。

    var picture = UIImageView(frame: CGRectMake(view.frame.origin.x, view.frame.origin.y, 25, 25))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多