gpt4 book ai didi

swift - UIScrollView 中图像之间的边距

转载 作者:可可西里 更新时间:2023-11-01 00:41:49 32 4
gpt4 key购买 nike

我追求的效果:图像之间的间距仅在滚动时可见(如照片应用)。

许多旧的 obj-c 答案建议将 ScrollView 的边界扩展到屏幕外以使其页面更远,并使这个屏幕外空间成为图像之间的间隙。

pagingEnabled 说明的文档:

If the value of this property is YES, the scroll view stops on multiples of the scroll view’s bounds when the user scrolls.

因此,在尝试更改倍数值时,我扩展了 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)

最佳答案

正如文档告诉您的那样,一个“页面”宽度是 ScrollView 的边界宽度。

假设图像宽度为 100 点。假设图像之间的间距为 10 磅。然后:

  • ScrollView 的宽度必须为 110 磅。

  • 空格必须分布在每张图片的每边 5 个点,像这样(假设我们有 3 张图片):

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

这将导致每个页面包含一个 100pt 的图像,每边有 5pts 的空间,总共 110pts, ScrollView 的宽度:

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

enter image description here

关于swift - UIScrollView 中图像之间的边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42617214/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com