【发布时间】:2017-10-14 22:03:35
【问题描述】:
我目前有一个 UITableView,其 HeaderView 是 UIScrollView。我将其用作一种轮播,显示不断旋转的信息,每两秒触发一次计时器。我想要做的是检测用户何时自己移动了滚动视图。这是我现在必须处理 ScrollView 移动的代码。
override func viewDidLoad() {
var myTimer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(runTimedCode), userInfo: nil, repeats: true)
}
func runTimedCode() {
var itemCount = newsArray.count // how many items are in the news reel
if currentPage < itemCount {
let newX = CGFloat(currentPage) * self.view.frame.width // calculate next page position
featuredScrollView.setContentOffset(CGPoint(x: newX, y: 0), animated: true)
currentPage += 1
} else {
// end of items
currentPage = 0
let newX = CGFloat(currentPage) * self.view.frame.width // calculate next page position
print("new x = \(newX)")
featuredScrollView.setContentOffset(CGPoint(x: newX, y: 0), animated: true)
}
}
然而,scrollViewDidScroll 函数只在 tableview 移动时被调用。有什么方法可以检测tableView上方的ScrollView何时滚动?我完全坚持这一点,任何帮助表示赞赏。谢谢!
【问题讨论】:
-
你设置了滚动视图的代理吗?
-
@koropok facepalm...我完全忘记了。这解决了这个问题。我想我的下一个问题是如何区分何时滚动 tableView 和何时滚动 ScrollView?
-
你看过这个吗?不确定这是否是一个解决方案,但我认为答案可能是这个的派生词。 stackoverflow.com/a/7706175/4475605
-
这是另一个有趣的。 stackoverflow.com/a/41124033/4475605
标签: swift uitableview uiscrollview uistoryboard