UIScrollView Paging Inset无法正常工作

时间:2015-09-06 02:00:20

标签: ios swift uiscrollview

如何创建UIScrollView页面插入一点显示下一页?就像在这个例子中一样:

enter image description here

我的当前代码如下:

@IBOutlet weak var scrollView: UIScrollView!
var colors = [UIColor.redColor(), UIColor.blueColor(), UIColor.greenColor(), UIColor.purpleColor(), UIColor.orangeColor()]

for var i = 0; i < colors.count; i++ {

    var rect:CGRect = CGRect()
    rect.origin.x = (scrollView.frame.size.width) * CGFloat(i)
    rect.size = CGSizeMake(self.scrollView.frame.size.width, self.scrollView.frame.size.height)

    var subview:UIView = UIView(frame: rect)
    subview.backgroundColor = colors[i]
    scrollView.addSubview(subview)
}

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * CGFloat(colors.count), self.scrollView.frame.size.height - 64)

给我这个结果(抱歉,如果它没有动画,请随时刷新页面):

enter image description here

我已经尝试弄乱this page上的代码而没有运气使其正确分页。 (即跳得太远或不够远)

1 个答案:

答案 0 :(得分:0)

很抱歉我现在无法附加代码,但我过去已经尝试过这种方法,您可以采取的一种方法是让滚动视图的框架大小为单个页面(而不是整个屏幕),并将滚动视图的clipSubviews属性设置为false。这样,您就可以获得所需的分页宽度,并且仍会看到下一页。

然而,它所呈现的问题是你无法从侧面滚动(滚动视图的框架之外,现在不能覆盖整个屏幕宽度)。为了解决这个问题,您可以在此滚动视图后面使用另一个滚动视图,它覆盖整个屏幕宽度。滚动视图会将其触摸传递给真实的&#39;滚动视图,这样您就可以获得正在尝试实现的功能,并且仍然可以覆盖整个屏幕宽度以进行滚动。