[英]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.