如何停止正在移动的UIView? 或正在减速的视图。如何停止正在移动的UIView?
的问题是,例如:
我有一个方法变更后的按钮的点击事件视图的位置;同时另一个拖动事件可以改变视图的位置。如果我先让拖动事件发生,那么当视图减速时,快速点击B,视图的位置会根据B后面的方法改变,但它会立即返回到正在减速并继续减速的位置。该视图不会回到按钮B所指示的位置,即使它完成减速。
代码如下。
首先,我使用KVO使视图(即_topView是代码)响应tableView的contentOffset(在tableView被拖动时,视图将移动)。
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary<NSString *,id> *)change context:(void *)context
{
CGPoint contentOffset = [change[NSKeyValueChangeNewKey] CGPointValue];
CGRect topFrame = _topView.frame;
topFrame.origin.y = -(contentOffset.y + TOP_SECTION_HEIGHT);
_topView.frame = topFrame;
}
然后在buttonB被点击时,下面的动画将被触发。
topFrame = CGRectMakke(...);
[UIView animateWithDuration:1 animations:^{
_topView.frame = topFrame;//topView
targetTableView.contentOffset = targetViewTargetOffset;
}];
显示您的'UIView'“移动”代码。 – Raptor
KVO不是动画视图的好方法。为什么你不只是在动画块中一起制作动画? – SmokeDispenser
@JanGreve因为我必须使视图与tableView一起移动,即使后者正在减速 – WhiteTherewasproblem