Плавное перемещение contentoffset UIScrollView Swift
Я хотел бы настроить contentOffset моего scrollview программно, когда contentOffset находится между двумя точками (см. рисунок ниже) с помощью Swift.
Проблема заключается в том, что я хотел бы добавить плавный переход для перемещения, но я не нашел документацию для этого. Я попытался сделать цикл, чтобы постепенно уменьшить смещение содержимого, но результат не так хорош.
В этом примере, если смещение содержимого меньше 150 px в конце прокрутки, оно гладко (продолжительность анимации будет 1 сек) до точки со смещением, равным 100. До 150 пикселей, он достигает 200px.
Если вы можете предоставить мне указания (документация или быстрый пример), что делать, было бы здорово:) Спасибо!
![введите описание изображения здесь]()
Ответы
Ответ 1
Вы можете использовать UIView.animations
func goToPoint() {
dispatch_async(dispatch_get_main_queue()) {
UIView.animateWithDuration(2, delay: 0, options: UIViewAnimationOptions.CurveLinear, animations: {
self.scrollView.contentOffset.x = 200
}, completion: nil)
}
}
Ответ 2
Вот версия кода fatihyildizhan версии Swift 3.
DispatchQueue.main.async {
UIView.animate(withDuration: 0.2, delay: 0, options: UIViewAnimationOptions.curveEaseOut, animations: {
self.myScrollView.contentOffset.x = CGFloat(startingPointForView)
}, completion: nil)
}