web-dev-qa-db-ja.com

iOSのTableViewは、上下にスクロールしているかどうかをどのように確認できますか

私はTableViewsの操作方法を学んでいますが、tableViewが上下にスクロールしているかどうかをどのように把握できますか?私はこのようなさまざまなことを試してみましたが、以下がスクロールビュー用であり、TableViewがあることを認めても機能しませんでした。私はこれが初めてなので、提案は素晴らしいでしょう...

  func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0 {
        print("down")
    } else {
        print("up")
    }
}

これは私がtableViewコードに持っているものです

func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int {
        return Locations.count
    }

    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        if indexPath.row == self.Posts.count - 4 {

            reloadTable(latmin: self.latmin,latmax: self.latmax,lonmin: self.lonmin,lonmax: self.lonmax,my_id: myID)
            print("Load More")
        }

    }


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "HomePageTVC", for: indexPath) as! NewCell


   cell.post.text = Posts[indexPath.row]
   cell.fullname.setTitle(FullName[indexPath.row],for: UIControlState.normal)

        return cell
    }
20
Rome Torres

scrollViewWillEndDraggingメソッドを実装できます:

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {


    if targetContentOffset.pointee.y < scrollView.contentOffset.y {
        // it's going up
    } else {
        // it's going down
    }

}
26
Alexandre Lara

最初に、最後のオフセットと現在のオフセットの2つのプロパティを作成する必要があります

 var lastOffset = CGFloat()
 var currentOffset = CGFloat()

次に、Scrollview VCでscrollViewWillBeginDraggingを呼び出して現在のオフセットを取得します

 override func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {

        self.lastOffset = scrollView.contentOffset.y

    }

最後のオフセットを取得するためのscrollViewWillBeginDecelerating

    override func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {

        self.lastOffset = scrollView.contentOffset.y
        viewStatus(scrollView: scrollView)

    }

この2つの変数を使用すると、スクロールビューWを知ることができます‍‍‍‍

‍‍‍let isScrollUp = scrollView.contentOffset.y > self.lastOffset
let isScrollDown  = scrollView.contentOffset.y < self.lastOffset
0