私は現在、HeaderViewがUIScrollViewであるUITableViewを持っています。私はこれを、回転する情報を常に2秒ごとにタイマーを動かすように表示するカルーセルの一種として使用しています。私がしようとしているのは、ユーザーがスクロールビューを自分で移動したときに検出することです。ここで私は今ScrollViewの動きを処理しなければならないコードです。UITableViewヘッダーがスクロールするときを検出する方法は?
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
@koropok facepalm ...私は完全に忘れました。それが問題を解決しました。私は次の質問は、tableViewがスクロールされているときとScrollViewがスクロールされているときを区別する方法だと思いますか? –
これは見ましたか?それが解決策であるかどうかは分かりませんが、答えはおそらくこれの派生品だと思います。 http://stackoverflow.com/a/7706175/4475605 – Adrian