¿Cómo Utilizar Correctamente iCarouselOptions con iOS iCarousel?

Estoy creando una aplicación para iOS con Swift y estoy usando iCarousel desde GitHub (instalado a través de cocoapods) y no estoy seguro de lo que estoy haciendo mal, pero me parece que no puede conseguir iCarouselOptions empecé a tener ningún efecto...

Lo que quiero hacer es simplemente cambiar el espaciado de la UIViews en mi carrusel (Que están muy cerca entre sí y se superponen, lo que no quiero).

Aquí está mi código:

    import UIKit
    import iCarousel

    class MiniGamesViewController: UIViewController, iCarouselDelegate, iCarouselDataSource {

        //Objects
        @IBOutlet weak var leaveMinigamesButton: UIButton!

        //Variables
        var carouselHeight : CGFloat!
        var selectionBallSize : CGFloat!

        override func viewDidLoad() {
            super.viewDidLoad()

            leaveMinigamesButton.layer.zPosition = 3
            carouselHeight = self.view.frame.size.height - 200
            selectionBallSize = self.view.frame.size.width * 0.65

            let carousel = iCarousel(frame: CGRect(
                x: 0,
                y: 100,
                width: self.view.frame.size.width,
                height: carouselHeight))

            carousel.perspective = -0.005
            carousel.centerItemWhenSelected = true
            carousel.decelerationRate = 0.9
            carousel.viewpointOffset = CGSize(width: 0, height: 0) //-selectionBallSize * 1.2

            carousel.dataSource = self
            carousel.type = .rotary
            view.addSubview(carousel)
        }

        override func viewDidAppear(_ animated: Bool) {
            setNeedsStatusBarAppearanceUpdate()
        }

        //This is how many items there will be in my rotary iCarousel
        func numberOfItems(in carousel: iCarousel) -> Int {
            return 6
        }

        //This defines each item or 'cell' in the iCarousel
        func carousel(_ carousel: iCarousel, viewForItemAt index: Int, reusing view: UIView?) -> UIView {
            let imageView: UIImageView
            if view != nil {
                imageView = view as! UIImageView
            } else {
                imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: selectionBallSize, height: selectionBallSize))
            }
            imageView.image = UIImage(named: "orbCyan")
            return imageView
        }

        func carousel(_ carousel: iCarousel, valueFor option: iCarouselOption, withDefault value: CGFloat) -> CGFloat {
            switch (option) {
            case .spacing: return value * 2
            case .radius: return 200
            case .fadeMinAlpha: return 0.5
            default: return value
            }
        }
}

Específicamente el fondo de mi código es donde la personalización se suponía que iba a tener efecto, pero no parece estar haciendo cambios cuando ejecuto la aplicación. Por el momento, sólo estoy preocupado tratando de espacio de la UIViews en el carrusel para estar más separados.

Estoy echando la iCarouselOptions función en el lugar correcto? Hay que ser "llamado" a todos?

Gracias por su ayuda!

1 Respuestas

  • Justin
    4 de mayo de 2019

    No sabes que, tan pronto como he publicado esta pregunta he encontrado el problema jaja (un día después de intentar todo). Resulta que yo estaba perdiendo el simple línea:

    carousel.delegate = self
    

    debajo:

    carousel.dataSource = self
    

    Que totalmente le hizo el truco y funciona ahora lol. Necesito un nuevo par de ojos :P