Я пытаюсь использовать Cocoapods слайд-шоу изображений, индикатор страницы не работает правильно только на моем проекте, но он отлично работает в демонстрационных и новых проектах - PullRequest
0 голосов
/ 17 января 2019

я пытаюсь использовать imageSlideShow cocoapods. Я устанавливаю его, пробую демо-версию и работаю нормально, также использовал его в тестовом проекте и работает нормально, но когда я использовал его в своем индикаторе страницы проекта, не работает, и я стараюсь все, но также не работает, и я создаю новый контроллер представления в моем проекте и сделать его инициализацию и запуск также не работает это мой код

import UIKit
import ImageSlideshow
class test: UIViewController {

open override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .portrait
}

@IBOutlet var slideshow: ImageSlideshow!

let localSource = [ImageSource(imageString: "imageLoading")!,ImageSource(imageString: "imageLoading")!,ImageSource(imageString: "logo")!]


override func viewDidLoad() {
    super.viewDidLoad()



    slideshow.slideshowInterval = 5.0
    slideshow.pageIndicatorPosition = .init(horizontal: .center, vertical: .customUnder(padding: 50))
    slideshow.contentScaleMode = UIViewContentMode.scaleAspectFill

    let pageControl = UIPageControl()
    pageControl.currentPageIndicatorTintColor = UIColor.lightGray
    pageControl.pageIndicatorTintColor = UIColor.black
    slideshow.pageIndicator = pageControl

    // optional way to show activity indicator during image load (skipping the line will show no activity indicator)
    slideshow.activityIndicator = DefaultActivityIndicator()
    slideshow.currentPageChanged = { page in
        print("current page:", page)
    }

    // can be used with other sample sources as `afNetworkingSource`, `alamofireSource` or `sdWebImageSource` or `kingfisherSource`
    slideshow.setImageInputs(localSource)

    let recognizer = UITapGestureRecognizer(target: self, action: #selector(test.didTap))
    slideshow.addGestureRecognizer(recognizer)
}


    // guard let im = imageUrlString else {return "hello "}
    let recognizer = UITapGestureRecognizer(target: self, action: #selector(test.didTap))
    slideshow.addGestureRecognizer(recognizer)*/
}
@objc func didTap() {
    let fullScreenController = slideshow.presentFullScreenController(from: self)
    // set the activity indicator for full screen controller (skipping the line will show no activity indicator)
    fullScreenController.slideshow.activityIndicator = DefaultActivityIndicator(style: .white, color: nil)
}

}

и результат этого кода делает слайд-шоу, но индикатор не работает, он появляется, но не растягивается и не меняется должным образом, и, как я отметил на рисунке, только изменение цвета и изображения, но не четкий номер изображения или чего-либо еще https://drive.google.com/file/d/1z2pQ0HFUQC0F0oyajo9gRHOLcqsU4_sJ/view?usp=sharing

1 Ответ

0 голосов
/ 18 января 2019

Похоже, кадр UIPageControl не установлен. Если вы удалите все о pageControl - он автоматически разместит элементы управления. Или вы можете создать свой собственный в раскадровке:

@IBOutlet weak var imageSlideshow: ImageSlideshow!
@IBOutlet weak var slideshowPageControl: UIPageControl!

var slideshowInputs: [InputSource] {
    let place = categoryPlaces[selectedIndex]
    return [
        ... your inputs
    ]
}

func setupData(){
    imageSlideshow.setImageInputs(slideshowInputs)
    slideshowPageControl.numberOfPages = slideshowInputs.count
    imageSlideshow.currentPageChanged = { page in
        self.slideshowPageControl.currentPage = page
    }
}
...