【问题标题】:Animating a UIView (that contains child components WITH constraints) by its constraints通过其约束为 UIView(包含带约束的子组件)设置动画
【发布时间】:2017-05-05 03:37:09
【问题描述】:

我最近试图通过它的约束为一个 UIView 动画,其中包含一个文本字段(有约束)。我成功地移动了 UIView,但无论出于何种原因,当 UIView 移动并且 X-Code 调试器抛出错误时,它内部的文本字段会被“弄脏”:[LayoutConstraints] Unable to simultaneously satisfy constraints.。我正在将 UIView 移到屏幕外,所以也许这就是原因。我的代码在这里:

        self.mainViewLeftConstraint.constant = self.menuView.frame.width
        self.mainViewRightConstraint.constant = self.mainViewRightConstraint.constant + self.menuView.frame.width


        UIView.animate(withDuration: 0.2) {

            self.view.layoutIfNeeded()
        }

在上面的代码中,mainView 是屏幕的宽度,menuView 大约是一半。抱歉,如果这个问题有点难以理解,因为没有任何类型的视觉指南很难解释这个问题。

【问题讨论】:

  • 你能分享故事板的截图吗?
  • 确保文本字段的约束只在它和它的超级视图之间。
  • @vacawama 是对的.. 这意味着您的文本字段约束未使用您要设置动画的 UIView 设置

标签: ios swift xcode uiview


【解决方案1】:

您提到的错误[LayoutConstraints] Unable to simultaneously satisfy constraints 表示UITextfield 的所有约束都不适用于UIViewUITextfield 的超级视图)。因此,当您移动UIView 时,同时满足UITextfield 的所有约束(w.r.t UIView + w.r.t 一些其他视图)存在歧义。

【讨论】:

  • 我重新设置了约束并确保它们都在 UIView 中,但我仍然遇到同样的错误。我读到这可能是由于我在 UIView 的两侧有两个约束,我正在移动到 ViewController 的边缘。不知道如何解决这个问题。
猜你喜欢
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 2013-07-11
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多