2014-09-08 1 views
-4

처음에는 indexpath가 0,1,2 ...의 순서로 호출되지만, 테이블 뷰를 클릭하면 func tablview가 완전히 무작위로 나타나는 indexpath와 함께 호출됩니다. 따라서 동일한 데이터를 재현 할 수 없습니다. 배열을 사용하여 테이블의 행을 서로 연관시킵니다. 스위프트 : cellForRowAtIndexPath가 indexPaths의 순서로 호출되지 않음

코드

은 여기에 있습니다 :

// MARK: - Table view data source 

override func numberOfSectionsInTableView(tableView: UITableView!) -> Int { 
    // #warning Potentially incomplete method implementation. 
    // Return the number of sections. 
    return 1 
} 


override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete method implementation. 
    // Return the number of rows in the section. 
    return myList.count 
} 
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { 
// Configure the cell... 

    println("table view --> ") 
    let CellID : NSString = "Cell" 
    var cell : UITableViewCell = tableView?.dequeueReusableCellWithIdentifier(CellID)as UITableViewCell 
    var VehicleName = cell.viewWithTag(1) as UILabel 
    var VehicleNumber = cell.viewWithTag(2) as UILabel 

    if let ip = indexPath 
    { 

     VehicleName.text = arrayData[ip.row*2]; 
     VehicleNumber.text = arrayData[ip.row*2+1]; 
    } 
} 
    return cell 

} 
+1

왜 indexPaths를 주문 하시겠습니까? 또한 잘못된 함수 이름이 많이 언급됩니다. 여기에서 달성하기를 원하는 것, 지금까지 시도한 것이 무엇인지, 그리고 작동하지 않는 것이 무엇인지 명확히하십시오. –

+0

arrayData에서 데이터를 가져오고 indexPath를 사용하여 데이터를 직렬로 가져옵니다. 그래서 cellForRowAtIndexPath가 이전에 시퀀스에서 호출되지 않았을 때 테이블에 임의의 데이터가 표시됩니다. – psijic

답변

0

당신은 디자인 문제가 있습니다. 임의 액세스 방식으로 요청 된대로 데이터를 제공 할 수 있어야합니다.

UITableView와 'UITableViewDataSource'에 대한 문서를 살펴 보자.

API는 데이터가 필요하기 때문에 cellForRowAtIndexPath를 호출하고, 매번 모든 데이터가 아닌 표시 할 데이터 만 요청합니다. 표시되는 셀만 작성합니다. 1000 행의 데이터가 있고 903 행을 통해 900 행을 표시했다면 데이터 만 필요합니다. 보기가 하나 더 많은 행을 표시하도록 스크롤하면 행 904에서 더 많은 데이터 만 필요합니다.

+0

감사합니다. 아마 내 배열의 종속성을 변경하려고합니다. – psijic

0

cellForRowAtIndexPath의 indexPath가 어떤 순서로 호출되는지는 절대 보장되지 않습니다. 그것은 UIKit 프레임 워크에 있습니다.

데이터 원본 배열에 데이터가 저장되는 방식을 완전히 제어해야합니다. 이 경우 arrayData입니다. 어떤 점에서 이것은 myList과 관련되어 있지만 사용자 코드 스 니펫에서 볼 수 없습니다. arrayData 내에서 요소가 배열되는 방식에 대한 작업을 수행하면 모든 셀에서 예상되는 요소를 갖게됩니다.

+0

감사합니다, 그것을 내 배열 독립적으로 만들려고합니다. – psijic

관련 문제