Управление страницей UITableView Swift - PullRequest
0 голосов
/ 21 мая 2018

В моем табличном представлении есть список ячеек с более чем 50 данными, и я не хочу показывать более 50 ячеек в моем табличном представлении.Я хочу показывать только 5 ячеек на странице, и при каждой прокрутке номер моей страницы может увеличиваться / уменьшаться.

Я хочу прокрутить вниз, и мое приложение переходит на следующую страницу, пока я прокручиваю вверх и мое приложениепереходит на предыдущую страницуКак мне это сделать?

override func viewDidLoad() {
    super.viewDidLoad()
updatePropertyListWithDistrict(district: "ABC")
}

var currentPage : Int = 1
var listLimit : Int = 5

// getting property list
func updatePropertyListWithDistrict(district: String) {
    PSPWCFService.sharedClient.PropertyList(district: district, PageNumber: currentPage, PageSize: listLimit) { (json, error) in
        MBProgressHUD.hide(for: self.view, animated: true)
        if let error = error {
            print(error.localizedDescription)
            return
        }
        let jsonArray = json?.array

        for object in jsonArray! {
            let newProperty: Property = Property(json: object)

            self.properties.append(newProperty)
        }
        self.tableView.reloadData()

        if (self.properties.count == 0)
        {
            let alertController = UIAlertController(title: "Alert", message:
                "No listings available in the area. ", preferredStyle: UIAlertControllerStyle.alert)
            alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.default,handler: nil))

            self.present(alertController, animated: true, completion: nil)
        }
    }

}

func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {

    //Bottom Refresh

    if scrollView == tableView{

        if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
        {
            currentPage += 1
            self.tableView.reloadData()
                }
            }
    }

1 Ответ

0 голосов
/ 21 мая 2018

вам просто нужно включить подкачку табличного представления из инспектора атрибутов в представлении прокрутки раздела.

Просто щелкните представление таблицы в раскадровке, перейдите в инспектор атрибутов, в разделе просмотра прокрутки просто отметьтеопция 'Включение подкачки' Just click on the table view in the storyboard, goto attribute inspector, under Scroll View section just check the option 'Paging Enabled'

объявляет две переменные следующим образом:

  var contentOffset:CGFloat = 0
  var page = 0

, затем

  override func viewDidLoad() {
    super.viewDidLoad()
    page = 1
}

, затем реализует методscrollView

  func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    print(scrollView.contentOffset)
    if scrollView.contentOffset.y > contentOffset {
        page += 1
        pageNumberLabel.text = page.description
    } else if scrollView.contentOffset.y < contentOffset {
        page -= 1
        pageNumberLabel.text = page.description
    }
    contentOffset = scrollView.contentOffset.y
}

это сделает работу за вас, но есть проблема, когда вы медленно прокручиваете tableView, он прокручивает только некоторые строки, а не все, которые отображаются.К сожалению, не могу найти решение для этого прямо сейчас, но обязательно попробую в свободное время.

...