我有一个消息传递视图,用户可以选择要添加到消息中的表情符号。我在键盘上方有一个栏,用户可以在其中输入他们的信息。它看起来像这样:H:|-[UIButton: emoticon]-[UITextField]-[UIButton: send]|
现在我试图通过将左边约束设置为constraint.constant -= screenWidth
来滑动所有这些,但这似乎不起作用,因为我在日志中加载了“无法满足约束”消息他们都没动。我还有一个问题就是不知道放置表情符号的位置(它是一个UIButton
的栏,每个表情符号都有一个表情符号。)
有没有办法以简单的方式做到这一点?
答案 0 :(得分:2)
如果我理解你做得对(你的细节很少),你的问题就是你的约束仍然固定在开头和结尾。
在滚动任何内容之前,您可能需要删除最后一项的右边约束。
那就是说,在这种情况下我通常做的就是把所有应该滚动的内容包装在简单的UIView中。然后我可以保持它们的内部约束相同,只有UIView固定在其超视图的左侧和右侧。要滚动,我只需使用当前宽度添加宽度约束,删除右边约束,然后从左边约束的常量中减去它以将其滚动到屏幕外。
额外的视图让我保证一切都保持在动画开头的大小和位置,甚至可以让我优化动画(例如我可以在滚动之前光栅化视图,并且UIKit然后只需移动一层)。