2017-02-28 12 views
0

PFObject [](Parse SDKから)のfirstArrayがあり、7個の項目があり、firstArrayからsecondArrayを作成します。2つの配列を比較し、最後の項目を2番目の配列に追加する方法iOS Swift 3

secondArray = firstArray 

次に、私は更新されたデータを取得するためにデータベースにクエリを呼び出し、firstArrayの10項目になりました。私は彼らの特定の順序でsecondArrayの最後に、これらの3つの最後の項目を追加するにはどうすればよい

if firstArray.count > secondArray.count { 
     let lastItems = firstArray.count - secondArray.count 
    // lastItems = 3 
} 

私はこのような何か?

secondArrayは項目9

を追加した項目8

secondArrayを追加した項目10

を追加secondArray私は(reloadDataにしたくない)、私はちょうど最後の3を追加したいです行をWhatsAppのように私のTableViewに送ります。そうしないと、TableViewが一番上にスクロールします。

ありがとうございます!

+0

トップにスクロールしたくない場合は、reloadData()の直後にプログラムでスクロールして下部にスクロールする方法もあります。これは、http://stackoverflow.com/questions/952412/uiscrollview-scroll-to-bottom-programmatically – aunnnn

答えて

1

を追加したいと考えている場合に行うことができます 同じであれば、それを追加するには、これはうまくいくはずです。

if firstArray.count > secondArray.count { 
    for i in secondArray.count..<firstArray.count { 
     secondArray.append(firstArray[i]) 
    } 
} 

あなたはどのようにより良く理解するために、このドキュメントをご覧ください あなたがそれをリロードせずに、あなたのテーブルビューを更新したい場合は、 FUNC insertRows(UITableViewRowAnimation::[IndexPath]、アニメーションでindexPathsで)を使用する必要があります

+0

、 本当にありがとう! – cubycode

1

firstArrayとし、secondArrayはあなただけ

secondArray = firstArray 

と場合にあなたがsecondArrayを更新し、あなたが道を尋ねているので、新たなデータのみ

var counter = 0 
while secondArray.count != firstArrayCount { 
    secondArray.append(firstArray[firstArray.count+counter]) 
    counter += 1 
    //insert new row in table 
} 
+0

はい、申し訳ありませんが、私は正しく質問を表明していない、私はすべてのデータをリロードせずに私のTableViewデータソースを更新する必要があります、たとえばWhatsAppのようにテーブルの最後に最後の3行を追加するだけで、tableView.reloadData()が呼び出され、TableView全体が更新され、上部にスクロールされます。 – cubycode

+0

私の答えは一見良くなった – rv7284

1

を第一には、二番目の配列

secondArray.append(firstArrayと[インデックス])にデータを追加すると

self.yourTableView.beginUpdates() 
var insertedIndexPaths = [indexpath_where_you_want_insertData] 

self.yourTableView.insertRowsAtIndexPaths(insertedIndexPaths, withRowAnimation: .Fade) 
self.yourTableView.endUpdates() 
関連する問題