【发布时间】:2014-10-01 19:12:01
【问题描述】:
我有一个 UITableView,它是我的视图控制器的子视图。它位于屏幕的下半部分,可以使用手势识别器向上滚动。当手势完成时,我调用 UIView 动画块通过更改其顶部布局约束来完成 UITableView 的动画(请参见下面的示例代码)。
动画本身运行良好,但我注意到 UITableViewCell 子视图出现了一个奇怪的副作用(查看视频 - 注意表格视图最底部单元格的反弹),这似乎是由于 layoutIfNeeded 动画调用.
有什么方法可以将 layoutIfNeeded 调用隔离到表视图而不是其子视图?
代码:
- (void) handlePanRecognizer:(UIPanGestureRecognizer*)recognizer {
if (recognizer.state == UIGestureRecognizerStateEnded) {
self.topLayoutConstraint.constant = 0.0f;
//Animate
[UIView animateWithDuration:kAnimationDuration
delay:0.0F
usingSpringWithDamping:kAnimationBounce
initialSpringVelocity:kAnimationBounce
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
[self layoutIfNeeded];
} completion:^(BOOL finished) {
}];
}
}
视频:
【问题讨论】:
标签: ios objective-c uitableview uiview autolayout