簡體   English   中英

有沒有辦法在結合頁面控制的滾動視圖中自動布局圖像?

[英]Is there a way to auto layout an image in a scroll view combined with page control?

這是我的第一個條目。 我是應用程序設計的新手,來自德國,但我仍然希望你能理解我的問題。 我使用了 Xcode 11 和 Swift 5。

我正在使用頁面控件和滾動視圖在一個屏幕中的圖像之間切換。 在 iPhone 11 上看起來不錯,但在 iPhone 8 上,圖像的寬度和高度太大,這就是為什么當頁面控件位於第二段時仍然可以看到第一張圖像的一部分。 第二個圖像和第三個片段也是如此。 這希望能說明問題。 有沒有辦法讓圖像適合屏幕尺寸?

這是我的代碼:

```
import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {

@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!

    var Pages: [String] = ["Page1","Page2","Page3"]
    var frame = CGRect.zero


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        pageControl.numberOfPages = Pages.count //
        setupScreens()
        scrollView.showsHorizontalScrollIndicator = false
        scrollView.showsVerticalScrollIndicator = false
        scrollView.isPagingEnabled = true
        scrollView.delegate = self
    }

    func setupScreens() {
        for index in 0..<Pages.count {
            // 1.
            frame.origin.x = scrollView.frame.size.width * CGFloat(index)
            frame.size = scrollView.frame.size

            // 2.
            let imageView = UIImageView(frame: frame)
            imageView.image = UIImage(named: Pages[index])
            self.scrollView.addSubview(imageView)        }

        // 3.
        scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(Pages.count)), height: scrollView.frame.size.height)
        scrollView.delegate = self


    }

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

}

```

除了在viewDidLoad()中調用setupScreens()方法外,您的代碼完全可以正常工作。

viewDidLayoutSubviews中調用該方法,以便獲得正確的scrollView框架。

override func viewDidLayoutSubviews() {
          setupScreens()
}

這里下載演示

在此處輸入圖像描述

暫無
暫無

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

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