Изображения не отображаются в режиме прокрутки (только код, без раскадровки) - PullRequest
0 голосов
/ 23 февраля 2019

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

Я использую UIscrollview и Pagecontrol, чтобы создать что-то подобное, чтобы быть максимально понятным.

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

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

вот наиболее важный код, относящийся к этому:

class ViewController: UIViewController, UIScrollViewDelegate {
var images: [String] = ["0.jpg", "1.jpg"]
var frame = CGRect(x: 0, y: 0, width: 0, height: 0)

 lazy var scrollView: UIScrollView = {
    let scroll = UIScrollView()
    scroll.backgroundColor = UIColor.black
    scroll.translatesAutoresizingMaskIntoConstraints = false
    scroll.layer.cornerRadius = 30
    return scroll

}()

lazy var pageControl: UIPageControl = {
    let page = UIPageControl()
    page.backgroundColor = UIColor.black
    page.translatesAutoresizingMaskIntoConstraints = false
    return page
}()

методы:

func testScroll() {
    for index in 0..<images.count {
       frame.origin.x = scrollView.frame.size.width * CGFloat(index)
        frame.size = scrollView.frame.size

        let imgView = UIImageView(frame: frame)
        imgView.image = UIImage(named: images[index])
        self.scrollView.addSubview(imgView)


    }

    scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(images.count)), height: scrollView.frame.size.height)

    scrollView.delegate = self
}

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    var pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width
    pageControl.currentPage = Int(pageNumber)
}

1 Ответ

0 голосов
/ 23 февраля 2019

Может ли он звонить testScroll() слишком рано?Кадр scrollView будет (0, 0, 0, 0).То же самое относится ко всем его изображениям.Это также может объяснить ваш элемент управления страницей.

viewDidLayoutSubviews() срабатывает после вычисления всех кадров подпредставлений.Это было бы место, чтобы позвонить testScroll().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...