Изображение CollectionViewCell не помещается в ячейку при прокрутке - PullRequest
0 голосов
/ 07 мая 2020

Click to view the image

Привет всем,

У меня есть collectionView изображений. При горизонтальной прокрутке изображения не помещаются в ячейку. Я использую его в режиме iPhone 11 pro max, а ширина - 414.

Я включил разбиение на страницы. Я пробовал, подходящее соотношение сторон, заливка. Это мало помогает. Я хочу разместить изображения в ячейке при прокрутке

import UIKit

class ImageViewController:UIViewController,UICollectionViewDelegate, UICollectionViewDataSource {


    let cellIdentifier = "SecondImageCell"
    var images: [String] = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]
    var indexpath = NSString()
    var startIndex = Int()

override func viewDidLoad() {


    super.viewDidLoad()
    indexpath = UserDefaults.standard.value(forKey: "indexPath") as! NSString
     self.paging_ref.numberOfPages = images.count

    }


    @IBOutlet weak var paging_ref: UIPageControl!
    @IBOutlet weak var secondCollectionView: UICollectionView!

    override func viewDidLayoutSubviews()
    {
        super.viewDidLayoutSubviews()
         let str = "\(indexpath)" // here i'm converting indexpath which is NSString into String
         startIndex = Int(str)!
        // here i'm converting str into integer value
        startIndex -= 1
        let indexPath = IndexPath(item: startIndex, section: 0)
        self.secondCollectionView.isPagingEnabled = true
        self.secondCollectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
        print(indexPath)
    }


    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
     return images.count
 }

 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath) as! SecondCollectionViewCell
     cell.layer.shouldRasterize = true
    cell.imageView2.image = UIImage(named: images[indexPath.row])
     return cell

 }
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
           let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
           self.paging_ref.currentPage = Int(pageIndex)
       }

}

1 Ответ

1 голос
/ 07 мая 2020

Я думаю, либо ваши ограничения отключены, либо ваш режим содержимого не соответствует аспектFit

SecondCollectionViewCell: UICollectionViewCell {
...
// 1. make sure your image is constrained fully
// 2. imageView2.contentMode = .scaleAspectFit
...
}
...