0
我有一个UITableView是我的视图控制器的子视图。它位于屏幕的下半部分,可以使用手势识别器向上滚动。当手势完成时,我调用一个UIView动画块,通过更改其顶部布局约束来完成UITableView的动画效果(请参见下面的示例代码)。动画layoutIfNeeded UITableView没有动画UITableViewCells
动画本身工作正常,但我注意到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) {
}];
}
}
视频: