2017-03-25 7 views
1

imageArray = ["one"、 "two"、... "eight"]という配列があります。そして、コレクションビューに画像を埋め込みます。前提条件:セルはビューの中央に配置され、コレクションビュー/ビューの大半を占めます。画像ビューは一番上にあり、セルより少し小さいです。わかりましたので、今私はユーザーがどちらの画像をカウントする必要があります。ユーザーが画像3にスクロールすると、3をカウントする方法が必要になります。コレクションビューでは、ちょうどそれらについて見つかったので、いくつかの助けが必要です。ここ は、あなたが何をすべきいくつかのコード(基本設定)どの画像ユーザが水平コレクションビューでページングを有効にしているかをカウントする

class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { 

@IBOutlet weak var myCollectionView: UICollectionView! 

@IBOutlet var mainView: UIView! 

var imageArray = ["one", "two", "three", "four", "five", "six", "seven", "eight"] 
    func numberOfSections(in collectionView: UICollectionView) -> Int { 
    return 1 
} 
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return imageArray.count 
} 
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! UserFeedCollectionViewCell 
    cell.myImage.image = UIImage(named: imageArray[indexPath.row]) 
    cell.myImage.layer.cornerRadius = 12.0 
    cell.myImage.clipsToBounds = true 
    return cell 
} 
+0

このリンクを参照してください。 http://stackoverflow.com/questions/18649920/uicollectionview-current-visible-cell-index –

答えて

1

ソリューション

あなたが画面上に表示されているセルを知りたいと思った後、

  1. 利用財産visibleCells、それが画面上に現在表示されている細胞のあなたの配列を与えるだろう。

  2. プロパティindexPathsForVisibleItemsを使用すると、表示されているすべてのセルのindexPathの配列が得られます。あなたがdequeueプロパティを使用しているUICollectionViewで情報

    については

dequeueプロパティは、このような作品:

あなたはN個のセルとV細胞を持ってみましょうし、それは、V+1セルのメモリを取り、スクロールした後、それが早いセルからメモリを解放し、それを与える画面上で可能であり、新しい目に見える細胞に。

お手伝いします。

+0

よろしくお願いします。 – Nivix

0

でこれです:

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    var aPoint = CGPoint() 
    collectionView.indexPathForItem(at: aPoint) 
} 

あなたはのは、画面やUICollectionViewの中央を言わせて、のインデックスを持ったら、あなたは理解することができます行とそれに対応する画像を取り出します。だから、

関連する問題