2017-02-10 9 views
0
.

. Swift 3 - Xcode 8 . Я использую вид таблицы для загрузки. & отображает все объекты классаName: «Task». Но как ограничить количество объектов до 25 и загружать еще 25, когда пользователь попадает в нижнюю часть представления таблицы?Swift 3 Использование представления таблицы для отображения объектов Parse. Как ограничить количество отображаемых объектов.

И как пользователь может отключить обновление, чтобы получить последнюю задачу? Я благодарю вас заранее !!!

let query = PFQuery(className: "Task") 
    query.whereKey("userId", equalTo: (PFUser.current()?.objectId!)!) 

    query.findObjectsInBackground(block: { (objects, error) in 

     if let posts = objects{ 
      for object in posts { 
       if let post = object as? PFObject { 

        self.taskType.append(post["type"] as! String) 
        self.taskTitle.append(post["title"] as! String) 
        self.taskDescription.append(post["description"] as! String) 
        self.taskPostal.append(post["postal"] as! String) 
        self.taskRegion.append(post["region"] as! String) 
        self.taskAmount.append(post["amount"] as! String) 
        self.taskAmountType.append(post["amountType"] as! String) 

        self.taskId.append(object.objectId!) 



        self.tableView.reloadData() 
       } 

      } 
     } 

    }) 
+0

FWIW разработана методика вы описываете (25 пунктов, в то время) называется нумерацией страниц Есть несколько руководств, используя IOS в Интернете, которые могут помочь. вы. – Padawan

ответ

0

Я бы порекомендовал вам Dwifft, который очень прост и буду обновлять строки автоматически с аккуратной анимацией и без suttering.

Добавить файлы Dwifft + UIKit.swift и Dwifft.swift в ваш проект. Настройте свой UITableViewController так же, как в DwifftExample. Вы должны забрать свой источник данных, который в вашем случае может быть атрибутом taskTitle (применяется в didset его self.diffCalculator? .rows = taskTitle). Используйте это свойство, чтобы вернуть его количество в методе делегата numberOfrowsInSection, как в примере.

Внутри вашего запроса, когда итерация через объекты и добавление их в массивы свойств сначала добавьте их в локальные массивы и вне цикла for добавьте свойства с + =.

Когда дело доходит до PAGINATION играть с query.limit = 25 и query.skip разбора. Затем в методе делегата tableView willDisplayCell проверит, если indexPath.row == taskTitle.count - 1, а затем выполняет другой запрос, сохраняя дорожку .skip.

Реализовать тянуть, чтобы обновить с UIRefreshControl() и не забудьте очистить свои свойства массивов с .removeAll (keepCapacity: Bool) также очистить значение Пропустите

Вы не должны использовать .reloadData() вдоль с Dwifft, так как он будет автоматически обновлять ваши ячейки.

0

вы можете использовать ограничение и пропустить, как показано ниже

пусть запрос = PFQuery (имя класса: "Задача") query.whereKey ("идентификатор пользователя", equalTo: (PFUser.current() ?. ObjectId) !)

query.limit = 50

query.skip = 0 // пропустить 0 записей, то в следующий раз, когда вы выполнить эту функцию, то установка пропустить = 50, то будет пропускать 50 записей.

query.findObjectsInBackground (блок: {(объекты, ошибка) в