Как правильно использовать iCarouselOptions с iOS iCarousel? - PullRequest
0 голосов
/ 28 октября 2018

Я создаю приложение для iOS с помощью Swift и использую iCarousel из GitHub (устанавливается через cocoapods), и я не уверен, что делаю не так, но у меня не получается получить iCarouselOptions, для которых я настроилэффект ...

Что я хочу сделать, это просто изменить интервал UIViews в моей карусели (они слишком близко и перекрываются, что я не хочу).

Здесьмой код:

    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
            }
        }
}

В частности, в самом низу моего кода должна действовать настройка, но, похоже, она не вносит никаких изменений при запуске приложения.На данный момент меня интересует только попытка разместить UIViews в карусели так, чтобы они были дальше друг от друга.

Я помещаю функцию iCarouselOptions в нужное место?Это вообще когда-либо «вызывали»?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 28 октября 2018

Разве вы не знаете об этом, как только я разместил этот вопрос, я обнаружил проблему, ха-ха (после дня, когда все пытались).Оказывается, мне не хватало простой строки:

carousel.delegate = self

внизу:

carousel.dataSource = self

Это полностью сработало, и теперь оно работает, лол.Мне нужен свежий набор глаз: P

...