2017-03-22 1 views
0

現在、mainScrollViewという名前のUIScrollviewがあります。私は8画像が格納されているimageArrayという画像の配列を持っています。私は、ユーザーがスクロールビューでスクロールした画像をカウントする方法を作成したいと考えています。私はscrollviewdidscroll関数を作成して、ユーザーが現在どの画像を数えているのだろうと思っていました。かなり基本的なコードをいくつか用意しています。スクロールした各画像をカウントする方法

@IBOutlet weak var mainScrollView: UIScrollView! 

@IBOutlet var mainView: UIView! 

のviewDidLoad():

mainScrollView.frame = view.frame 
    imageArray = [#imageLiteral(resourceName: "IMG_1134.jpg"), #imageLiteral(resourceName: "IMG_1415.jpg"), #imageLiteral(resourceName: "IMG_1682.jpg"), #imageLiteral(resourceName: "IMG_0814.JPG"), #imageLiteral(resourceName: "IMG_1807.jpg"), #imageLiteral(resourceName: "IMG_1529.PNG"), #imageLiteral(resourceName: "IMG_1652.JPG"), #imageLiteral(resourceName: "IMG_1721.PNG"), #imageLiteral(resourceName: "IMG_1818.PNG")] 
    for i in 0..<imageArray.count { 
     let imageView = UIImageView(frame: mainScrollView.bounds) 
     imageView.contentMode = .scaleAspectFill 
     imageView.clipsToBounds = true 
     imageView.image = imageArray[i] 
     let xPosition = self.view.frame.width * CGFloat(i) 
     imageView.frame = CGRect(x: xPosition, y: 0, width: self.view.frame.width, height: self.mainScrollView.frame.height) 

     mainScrollView.contentSize.width = mainScrollView.frame.width * CGFloat(i + 1) 
     mainScrollView.addSubview(imageView) 
} 

} 


func scrollViewDidScroll(_ scrollView: UIScrollView) { 
//count an int number of what image the user is currently on 

} 

私はこのことができますし、任意のヘルプは大歓迎です、ありがとう願っています。

答えて

0

個々の画像の幅とXの位置がわかっているので、画像が横に並んでいるようです。そのため、scrollViewDidScrollでは、コンテンツオフセットのx位置を確認するだけで、簡単な数式を使って、ユーザーが現在どの画像を表示しているかを把握することができます。だから:

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    //find the content offset 
    //then divide the content offset by the image width to figure out 
    // what image the user is currently on(ish) 
    scrollView.contentOffset.x/view.frame.width = ? 
    //the '?' will be a decimal number, and you could round down or up 
    //to figure out what image is currently being presented 
} 

編集:私は個人的には丸めて安全です!それをテストし、それが動作するかどうか私に知らせる!あなたのロジックを変更することが喜んでいるが、細胞として、各画像とテーブルビューを作成するよりシンプルになりますので、あなただけの画面上に現在表示されているものをテーブルのセルを監視することができた場合

+0

これはちょうど私が何か他のものとのトラブルを抱えていがっかり仕事をしました。あなたが見 – Nivix

+0

したがって、各時間がかかることができればちょうどクールになるBCを尋ねる見てみたい場合、彼らはループジェイのためににあった最後の画像を削除するには、彼らが上である画像カウントしようとすると、ユーザーがスクロールし、画像を渡すと、画面から外れている瞬間、UIScrollViewから画像を削除したいのですか?もしそうなら、私は非常にEricのタウンシップのアプローチを取ることをお勧めします、彼はすべてのあなたの問題は簡単にUITableViewを使用して解決することが100%です。 – Jay

+0

実際に@ user7424546 UICollectionViewは、容易に実装可能な水平スクロール機能のため、おそらくよりうまくいくでしょう!もし必要なら、私はそれを手助けすることができます。 – Jay

0

わからない

また、同じ方法を使用すると、画面にセルが表示されたときにindexPathを配列に追加し、配列の.lastプロパティを使用して、最後に表示されたイメージを知ることができます。

関連する問題