2017-03-06 26 views
0

後我的影響:有圖像之間的間距,同時滾動(如照片應用程序)是唯一可見的。保證金 - 斯威夫特版本

很多老OBJ-C答案建議延長屏幕外滾動視圖的邊界,使其頁面更遠,並且使這個屏幕外空間圖像之間的差距。

爲pagingEnabled文檔狀態:

如果此屬性的值是YES,滾動視圖上停止滾動視圖的邊界當用戶滾動的 倍數。

因此,在試圖更改倍數值時,我擴展了scrollView的寬度,並啓用了左側分頁。然而,沒有答案,我實現過去的差距頁面 - 他們總是把它留在視圖:

enter image description here

所以如果滾動寬度較長,爲什麼沒有分頁適當的距離?

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) 

回答

0

我最大的啞奏但...我有一個平等的寬度限制設置,我會忘記......這意味着通過了滾動分頁被固定在上海華寬度的倍數。

不是一個真正的答案,但,是的。記住你的約束。

1

正如文檔告訴你的,一個「頁面」寬度是滾動視圖的邊界寬度。

所以我們可以說圖像是100分寬。假設圖像之間的空間爲10點。然後:

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

  • 的空間必須在每個圖像的每一側分佈5分,這樣的(假設我們有3個圖像):

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

這將導致每個頁面在100pt圖像由用的空間,每邊5分,共110點,滾動視圖的寬度:

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

enter image description here

+0

感謝您的回覆。我已經盡力實現這一點 - 也許你可以證明它是如何完成的。 – Tim

+0

添加了截屏視頻,演示。每個圖像視圖都有一個邊框,因此您可以看到它們之間確實存在差距。這是我的答案中所描述的_exactly_創建的。 – matt

+0

我看到它是你描述的,但請記住它不是我描述的問題。我所包含的代碼是我的嘗試,如果您提到它,它會很有幫助。 – Tim