一番下までスクロールしてからバックアップすると、コレクションビューのセルが変更されています。スクロール時にスウィフトコレクションビューのデータが変更される
私のviewDidLoadには、データベースからすべての値を取り出し、メインスレッドからreloadDataを呼び出すParseクエリがあります。
初期ロードでは、表示可能なセルが正しく表示されます。
しかし、スクロールすると、表示されていないセルが読み込まれ、1/3が正しく表示されません。
その後、最初の表示可能なセルまでスクロールすると、最初の表示セルは正しく表示されません。
正しく表示されていないと、私のデータベースには、整列のためのフィールドがあります。これは中央、左、右の文字列を保持できます。
この値は、自分の画像とボタンをセル内でどのように配置するかということです。
ここに私のcellForRow関数があります。
if(cell.picture.frame.origin.x == 0){...
セルを再利用した場合、それは"left"
だがない:ここでは
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
let cell: FeedThumbnail = collectionView.dequeueReusableCellWithReuseIdentifier("feed_cell", forIndexPath: indexPath) as! FeedThumbnail
//handle cell alignment
if(align[indexPath.row] == "left"){
//leave alignment as is for buttons
if(cell.picture.frame.origin.x == 0){
cell.picture.frame.offsetInPlace(dx: -75, dy: 0)
}
}
else if(align[indexPath.row] == "center"){
cell.holder_view.frame.offsetInPlace(dx: 105 - cell.holder_view.frame.origin.x, dy: 0)
//leave image as is
}
else if(align[indexPath.row] == "right"){
cell.holder_view.frame.offsetInPlace(dx: 220 - cell.holder_view.frame.origin.x, dy: 0)
cell.picture.frame.offsetInPlace(dx: 100 - cell.picture.frame.origin.x, dy: 0)
}
return cell
}
は、クラスには、このように、cellFor...
に条件を得た私のコレクションビュー電池用
import UIKit
class FeedThumbnail: UICollectionViewCell {
@IBOutlet weak var picture: UIImageView!
@IBOutlet weak var comment_btn: UIButton!
@IBOutlet weak var heart_btn: UIButton!
@IBOutlet weak var rescip_btn: UIButton!
@IBOutlet weak var og_btn: UIButton!
@IBOutlet weak var name_lbl: UIButton!
@IBOutlet weak var holder_view: UIView!
}
あなたは 'FeedThumbnail'クラスを投稿することができますか? – RPK
私はちょうどそれを追加しました。 – Basic
ボタンはすべてholder_viewの内側にあります。 – Basic