【发布时间】:2014-03-10 06:25:26
【问题描述】:
我不使用 IB。我正在用代码布置一切。
我在视图顶部有一个 UIToolbar。 我将它的高度设置为 64 或其他东西,宽度显然是为了水平拉伸以适应屏幕宽度。 当我第一次启动该应用程序时,一切都很完美。我改变了方向,工具栏调整大小,都很好。
现在是动画部分。
当我在视图上向上滑动时,工具栏应该在屏幕顶部向上移动并隐藏。 当我在视图上向下滑动时,工具栏应该会返回下来。
我尝试通过以下方式设置约束。
最初是这个。
// for width
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[toolbar]-|" options:0 metrics:nil views:viewDict]];
// for height
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[toolbar(toolbarHeight)]" options:0 metrics:metricDict views:viewDict]];
现在,在向上滑动期间
[self.view removeConstraint:[NSLayoutConstraint constraintWithItem:self.toolBar attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.toolBar attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
但它打破了本应使其回落并保持稳定的约束。
不用说,这让我发疯。有什么解决办法吗?
编辑:
经过仔细分析,“removeConstraint”没有按预期工作。基本上,它并没有消除我希望它消除的约束。 self.view.constraints 是一个 NSArray。现在我需要找到一种简单的方法来删除我想要的确切约束。
【问题讨论】:
标签: animation ios7 autolayout uitoolbar