2 votes

Comment afficher une image au centre d'une UICollectionViewCell en Swift ?

Je veux afficher une image au centre. Dans UICollectionView, le premier élément affiche l'image au centre lorsque je passe au deuxième élément, celui-ci n'est pas centré.

  let itemsPerRow:CGFloat = 1
  var sectionInsets =  UIEdgeInsets(top: 20.0, left: 20.0, bottom: 20.0, right: 20.0)
  var productImage = [String]()

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

    func collectionView(_ collectionView: UICollectionView,
                        cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ProductInfoDetailCell", for: indexPath)  as! ProductInfoDetailCell
        cell.productLargeImageView.image = UIImage(named: productImage[indexPath.row])
        //cell.productLabel.text = productTitle[indexPath.row]
        return cell
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

        let paddingSpace = (sectionInsets.left ) * (itemsPerRow + 1)
        let availableWidth = collectionView.frame.size.width - paddingSpace
        let widthPerItem = availableWidth / itemsPerRow
        return CGSize(width: widthPerItem , height: 400)
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
        return sectionInsets
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {

        return sectionInsets.left

    }

Première image, l'article est centré-

first Image, Item is centred

Deuxième image, l'élément n'est pas centré

second image, item is not centred

J'utilise également le défilement horizontal et la pagination dans UICollectionView.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X