How to edit UIScrollView size?

时间:2019-03-21 03:35:19

标签: ios swift xcode uiscrollview

I'm trying to build this:

example

下载文件时如何获得下载时间

但是,我有这个: example2

选择后,我还没有开始处理背景色或更改幻灯片的背景色。

我现在的错误是我无法正确设置尺寸(您可以知道,当我滚动到末尾时,它会停在幻灯片2上)。

如何使框架和幻灯片正确安装? (每个幻灯片的宽度均为188,高度为153)。

这是我的代码:

func setupSlideScrollView(slides : [Slide]) {
        scrollView.frame = CGRect(x: 0, y: 0, width: 200, height: 160)
        scrollView.contentSize = CGSize(width: 188 * CGFloat(slides.count), height: 153)
        scrollView.isPagingEnabled = true

        for i in 0 ..< 3 {
            slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: 188, height: 153)
            slides[i].backgroundColor = UIColor.red
            scrollView.addSubview(slides[i])
        }
    }

对于所有代码,我都按照本教程进行操作(步骤10+除外,因为我不需要动画):https://medium.com/@anitaa_1990/create-a-horizontal-paging-uiscrollview-with-uipagecontrol-swift-4-xcode-9-a3dddc845e92

2 个答案:

答案 0 :(得分:1)

您没有为滚动视图中的单元格或票证提供正确的框架。

var lastCellMaxX: CGFloat = 0
    var constantSpacingBetweenCell: CGFloat = 10

    for i in 0 ..< 3 {
        slides[i].frame = CGRect(x: lastCellMaxX, y: 0, width: 188, height: 153)
        slides[i].backgroundColor = UIColor.red
        scrollView.addSubview(slides[i])
        lastCellMaxX += 188 + constantSpacingBetweenCell
    }

我没有得到什么是view.frame,我认为这对您来说也没有用。 存储lastcellMaxX,它是cell.origin.x + cellwidth + intervalBetweenCell, 在给下一个视图提供框架时将是x

答案 1 :(得分:0)

您必须在scrollview的width参数中添加两张幻灯片之间的间隔。

在scrollview中,内容大小是您要添加的内容的总大小。因此,如果两张幻灯片之间有空格,或者您有前导和尾随空格,则必须在滚动视图的内容大小中添加该总空格。

例如,如果两张幻灯片之间的间隔为10,则scrollView的修改后的内容大小如下所示。

scrollView.contentSize = CGSize(width: 188 * CGFloat(slides.count) + CGFloat((slides.count - 1) * 10), height: 153)