2017-02-10 12 views
0

스위프트 3 - Xcode 8 테이블 뷰를 사용하여 &의 모든 개체를 className : "작업"에 다운로드합니다. 하지만 사용자가 테이블 뷰의 맨 아래에 도달하면 개체 수를 25로 제한하고 25를 더로드하는 방법은 무엇입니까?Swift 3 테이블보기를 사용하여 구문 분석 개체 표시 - 표시되는 개체 수를 제한하는 방법

그리고 어떻게 사용자 풀다운을 새로 고침하여 최신 작업을 얻을 수 있습니까? 미리 감사드립니다!

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 개 항목을 설명하는 것)에서이 페이지 매김라고 도움이 될 웹에서 아이폰 OS를 사용하는 몇 가지 튜토리얼이 있습니다. 너나가. – Padawan

답변

0

나는 당신에게 매우 간단 Dwifft을 추천하고 깔끔한 애니메이션과와 suttering없이보기 자동 당신의 행을 업데이트합니다.

프로젝트에 Dwifft + UIKit.swift 및 Dwifft.swift 파일을 추가하십시오. DwifftExample과 비슷한 UITableViewController를 구성하십시오. 귀하의 경우에는 귀하의 경우에 taskTitle 배열 속성이 될 수있는 데이터 소스를 가져와야합니다 (self.diffCalculator ?rows = taskTitle에 적용). 이 property를 사용하면, 예와 같이 numberOfrowsInSection 위양 메서드로 그 수를 돌려줍니다.

개체를 반복하여 속성의 배열에 추가 할 때 먼저 로컬 배열에 추가하고 for 루프 외부에 + = 속성을 추가하십시오.

query.limit = 구문 분석 25query.skip 플레이 매김을 제공합니다. 그런 다음 tableView 대리자 메서드 willDisplayCell에서 indexPath.row == taskTitle.count - 1을 확인한 다음 .skip 값을 유지하는 다른 쿼리를 수행합니다.

하는 UIRefreshControl (와 새로 고침 풀을 구현) 및 .removeAll (keepCapacity : BOOL)와 속성 배열을 청소 기억도 .skip 값

를 청소 당신은 함께 .reloadData()를 사용할 필요가 없습니다 Dwifft는 자동으로 셀의 업데이트를 수행합니다.

0

당신은 한계를 사용하고

하자 쿼리 아래 = PFQuery (클래스 이름 : "작업")처럼, 건너 뛸 수 있습니다 query.whereKey ("userId를", EqualTo가! (PFUser.current()? OBJECTID) !)

query.limit = 50

query.skip = 0 // 0 기록을 생략하고 다음 번에이 기능은 다음 설치 후 50 개 기록을 건너 뜁니다 = 50를 건너 실행합니다.

query.findObjectsInBackground (블록 : {(객체, 오류)