簡體   English   中英

通過scrollView分頁顯示不正確

[英]Paging by scrollView incorrect displayed

我不明白為什么iPhone 4,7可以正確顯示,但在iPhone 5,5上卻不能正確顯示。 我想通過ScrollView進行分頁。

我應該怎么做才能在所有設備上正確顯示?

func showScrollView() {
        var photoSlides = [Slides]()
        for image in photo {
            let slide: Slides = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slides
            slide.slideImage.image = image.image
            photoSlides.append(slide)
        }
        setupSlideScrollView(slides: photoSlides)
    }

    func setupSlideScrollView(slides : [Slides]) {
        scrollView.contentSize = CGSize(width: scrollView.frame.width * CGFloat(slides.count), height: 200)
        scrollView.isPagingEnabled = true

        for i in 0 ..< slides.count {
            slides[i].frame = CGRect(x: scrollView.frame.width * CGFloat(i), y: 0, width: scrollView.frame.width, height: scrollView.frame.height)
            scrollView.addSubview(slides[i])
        }
    }
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let pageIndex = round(scrollView.contentOffset.x/scrollView.frame.width)
        pageControl.currentPage = Int(pageIndex)
    }

https://yadi.sk/i/ipS5WchP3aRtZ9-正確(iPhone 8)

https://yadi.sk/i/SPmriRFn3aRtgL-格式不正確(iPhone 8 Plus)

如果您使用情節提要或xib設計UI,然后要在屏幕的某個部分使用幀大小來計算其他控件的幀,則必須在該控件上使用layoutIfNeeded方法。 即在您的情況下,您可以執行以下操作

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated) 

    scrollView.layoutIfNeeded()

    // THEN CALL YOUR FUNCTION WHICH SETUP YOUR OTHER VIEWS
    showScrollView()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM