簡體   English   中英

UIScrollView中圖像之間的邊距

[英]Margin between images in UIScrollView

我要的效果是:圖像之間只有在滾動時才可見的間隔(例如photos應用程序)。

許多舊的obj-c答案都建議在屏幕外擴展滾動視圖的邊界,以使頁面更遠,並使屏幕外空間成為圖像之間的間隙。

pageEnabled的文檔指出:

如果此屬性的值為YES,則當用戶滾動時,滾動視圖會在滾動視圖的邊界的倍數處停止。

因此,在嘗試更改倍數值時,我擴展了scrollView的寬度,並啟用了分頁。 但是,我沒有實現任何解決方案,都無法解決問題-他們總是將其留在視野中:

在此處輸入圖片說明

因此,如果滾動寬度較長,為什么它不分頁正確的距離呢?

    let gapMargin = CGFloat(20)
    scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width + gapMargin, height: view.frame.height)
    let exdScrollWidth = scrollView.frame.width

    //1
    let imageView1 = UIImageView()
    imageView1.backgroundColor = UIColor.green
    imageView1.frame = CGRect(x: 0, y: 0, width: exdScrollWidth - gapMargin, height: scrollView.bounds.size.height)

    //2
    let imageView2 = UIImageView()
    imageView2.backgroundColor = UIColor.yellow
    imageView2.frame = CGRect(x: exdScrollWidth, y: 0, width: exdScrollWidth - gapMargin, height: scrollView.bounds.size.height)

    //3
    let imageView3 = UIImageView()
    imageView3.backgroundColor = UIColor.red
    imageView3.frame = CGRect(x: exdScrollWidth * 2, y: 0, width: exdScrollWidth - gapMargin, height: scrollView.bounds.size.height)

    scrollView.contentSize.width = exdScrollWidth * 3

    scrollView.addSubview(imageView1)
    scrollView.addSubview(imageView2)
    scrollView.addSubview(imageView3)

正如文檔所告訴的那樣,一個“頁面”寬度是滾動視圖的邊界寬度。

因此,假設圖片的寬度為100點。 假設圖片之間的間隔為10點。 然后:

  • 滾動視圖的寬度必須為110點。

  • 空格必須在每張圖片的每一側分配5個點,如下所示(假設我們有3張圖片):

     5pts - 100pts (im) - 10pts - 100pts (im) - 10pts - 100pts(im) - 5pts 

這將導致每個頁面包含一個100pt的圖像,每側上有5 pts的空間,總共110 pts,即滾動視圖的寬度:

    5pts - 100pts (im) - 10pts - 100pts (im) - 10pts - 100pts(im) - 5pts
    |                      |                      |                    |

在此處輸入圖片說明

事實證明,我設置了一個相等的寬度約束,而我忘記了。 這意味着滾動視圖分頁的倍數固定為超級視圖的寬度。

暫無
暫無

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

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