【问题标题】:How to animate xib constraints inside a view controller?如何在视图控制器中为 xib 约束设置动画?
【发布时间】:2015-11-20 18:18:06
【问题描述】:

我已经构建了一个计数器,当您向上或向下滑动时会显示动画。

所以基本上它是我动画的视图控制器内的一个圆形 UIView

当用户向上或向下滑动时增加偏移量。

它工作得很好,但现在我试图把它放在一个 .Xib 文件中,然后

在视图控制器上加载 Nib。

它不工作,只有标签开始动画,而不是

圆形视图。

如何在视图中为 xib 设置动画

这是我的代码:

````

func handleSwipes(sender:UISwipeGestureRecognizer) {

   // up or down
   if sender.direction == .Up {
    increment = 1
    offset = 10
   } else {
    increment = -1
    offset = -10
   }

  // animate stuff with constraints
  inc(increment)

  UIView.animateWithDuration(0.18, animations: { _ in

    self.labelYConstraint.constant = self.offset
    self.view.layoutIfNeeded()
    self.label.alpha = 1
    self.label.textColor = UIColor(red: 52/255.0, green: 52/255.0, blue: 88/255.0, alpha: 1)
    self.circleView.filledColor = UIColor(red: 167/255.0, green: 246/255.0, blue: 67/255.0, alpha: 1)
  }
  }) { _ in

    UIView.animateWithDuration(0.18, animations: { _ in
      self.labelYConstraint.constant = 0
      self.view.layoutIfNeeded()
      self.circleView.layer.backgroundColor = UIColor(red: 211/255.0, green: 211/255.0, blue: 211/255.0, alpha: 0.3).CGColor
      self.label.textColor = UIColor.whiteColor()

    })
 }
}

````

第一个按钮是一个 UIView 动画

第二个按钮是嵌入在视图控制器中的 .Xib 文件

【问题讨论】:

  • “动画 xib”这句话完全没有意义。
  • 你会如何重新提出这个问题?我知道 xib 是一种视图,我只是想明确提出问题。
  • xib 不是视图。它是一个 xib(一个 nib 文件)。
  • 最好是说:如何为 xib 组件或 xib 约束设置动画?

标签: ios swift xib uiviewanimation


【解决方案1】:

您似乎正在为标签的 Y 约束设置动画。您必须确保为设置整个组的位置的约束设置动画。

一个简单的方法是在 xib 中创建一个透明的子视图并将所有元素放入其中,并创建一个 Y 约束以将该子视图定位在 xib 主视图中。当您为新约束设置动画时,它应该将所有元素一起移动。

如果这有帮助,请告诉我。

【讨论】:

  • Tks,我会试试的,我会告诉你的。它如何适用于第一个视图动画。我只为标签的 Y 约束设置动画,整个组都被设置了动画。
  • 约束指定每个元素如何对彼此位置的变化作出反应。所以我猜在第一种情况下,约束是不同的,它们将其他元素的位置连接到标签的位置。看看这两种情况的限制,看看有什么不同,尝试一下:)
  • 经过一些试验和错误,我设法找到了解决方案。如果我制作动画( view.frame.origin.y ),我会得到想要的结果。 :)
猜你喜欢
  • 2016-05-06
  • 2011-09-22
  • 2018-09-22
  • 2021-04-13
  • 1970-01-01
  • 2016-10-20
  • 2021-01-14
  • 1970-01-01
相关资源
最近更新 更多