如何在不中断其他功能的情况下使用动画滚动UIScrollView?

时间:2018-05-11 16:30:53

标签: ios swift timer

在这个应用程序中,您可以点击经文来突出显示它们。我添加了滚动功能,以便它使用animate自行滚动。但是每当滚动开始时,我都不能再点击这些经文,直到我停止滚动。到目前为止,这是我的代码:

@objc func move_view() {
    print("moved view")
    self.current_scroll_position += 3
    UIView.animate(withDuration: 0.5, delay: 0, options: .curveLinear, animations: {
        self.scroll_view.contentOffset = CGPoint(x: 0, y: CGFloat(self.current_scroll_position))
    }, completion: nil)
}

// start scrolling
print("start scrolling")
self.current_scroll_position = Int(self.scroll_view.contentOffset.y)

self.scroll_timer = Timer.scheduledTimer(timeInterval: TimeInterval(0.5), target: self, selector: #selector(self.move_view), userInfo: nil, repeats: true)
RunLoop.current.add(self.scroll_timer, forMode: .commonModes)

self.is_scrolling = true

这里没有滚动突出显示:

without scroll

这就是滚动的样子:

with scroll

正如您所看到的,我无法在滚动时点按,我该如何解决此问题?

0 个答案:

没有答案