美好的一天, 我在这里面对UIScrollView中的有线行为。我正在实现一个自定义循环UIScrollView,并且我已经将滚动视图的原点设置为一个点
scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: false)
之后,我使用动画将内容偏移更改为特定点
scrollView.setContentOffset(CGPoint(x: point, y: 0), animated: true)
问题在于虽然点是正确的(例如400),但是scrollview有时会跳转到另一个点,因此如果point = 10,则下面的代码应该打印10,但有时它会打印其他值。
scrollView.setContentOffset(CGPoint(x: point, y: 0), animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: {
print("Current x: \(self.tabsScrollView.contentOffset.x)")})
虽然我确定没有其他动画正在进行中。
我发现有人在暗示这样的事情
UIView.animate(withDuration: 0.5, animations: {
self.scrollView.contentOffset.x = point
})
令人惊讶的是它确实有效,但不像默认那样动画。 有什么想法吗?