不等式约束问题
Posted
技术标签:
【中文标题】不等式约束问题【英文标题】:Ineqaulity constrains issue 【发布时间】:2016-03-09 17:13:42 【问题描述】:我有不平等约束的问题。我想让 facebook_logo.Top 约束等于 = 136,但是当例如键盘出现时,我想将视图滚动到顶部,在这种情况下,可以隐藏 facebook 徽标,为了实现它,我添加了第二个约束。所以现在我有两个约束:
facebook_logo.Top 布局 facebook_logo.Top 布局 >= -100它对我有用,但 Xcode 显示自动布局错误:不等式约束歧义。
你能建议如何解决它。
【问题讨论】:
【参考方案1】:我认为你应该像这样收听键盘通知:
NSNotificationCenter.defaultCenter().addObserver(vc, selector: "keyboardWillShow:", name: "UIKeyboardWillShowNotification", object: nil)
NSNotificationCenter.defaultCenter().addObserver(vc, selector: "keyboardWillHide:", name: "UIKeyboardWillHideNotification", object: nil)
并根据userInfoDictionary中的UIKeyboardFrameBeginUserInfoKey and UIKeyboardFrameEndUserInfoKey
修改约束。
【讨论】:
【参考方案2】:将所有视图放在滚动视图中,给出适当的约束,然后使用 IQKeyboardManager。它会自行管理。
【讨论】:
【参考方案3】:您应该添加一个等于facebook_logo.Top Layout = 136
的约束并使用优先级 exp :
facebook_logo.Top Layout = 136
-> 优先级:999
facebook_logo.Top Layout <= 136
-> 优先级:1000
facebook_logo.Top Layout >= -100
-> 优先级:1000
【讨论】:
很遗憾,它不起作用,xcode 错误消失了,但徽标图像不会移到顶部。 您应该使用约束优先级值。我相信您会找到适用于所有设备屏幕尺寸的最佳配置【参考方案4】:实际上我发现了我的问题,为了解决它,我删除了约束 facebook_logo.Top 布局并添加了另一个 facebook_logo.Bottom 布局。现在,当 kwyboar 出现时,所有 UI 元素都固定到底部布局指南和视图可以移动到顶部。感谢您的帮助。
【讨论】:
以上是关于不等式约束问题的主要内容,如果未能解决你的问题,请参考以下文章