带标签的褪色scrollMenu

时间:2014-10-12 19:15:20

标签: ios objective-c iphone swift uiscrollview

我创建了一个分页的UIScrollView,其中包含每个页面上的标签。如何降低标签之间的边距,如图中所示,然后仍能滚动?

目前我的navigationBar看起来如下。你可以在哪里滑到右边的下一页并获得下一个标签。

enter image description here

我想要的是这样的东西,只有很小的余量,仍然可以刷卡。

enter image description here

viewDidLoad code

    //Category ScrollView
    categoryScrollView = UIScrollView(frame: CGRectMake(0, self.navigationController!.navigationBar.frame.height-38, self.view.frame.width, 38))
    categoryScrollView?.contentSize = CGSizeMake(self.view.frame.width, 38)
    categoryScrollView?.delegate = self
    categoryScrollView?.pagingEnabled = true
    self.navigationController?.navigationBar.addSubview(categoryScrollView!)

    categoryArray = NSArray(objects: "Book", "Elektronik")

    var textWidth = 0

    for val in categoryArray!
    {
        var textLabel: UILabel = UILabel()
        textLabel.textAlignment = NSTextAlignment.Center
        textLabel.text = val as NSString
        textLabel.frame = CGRectMake(CGFloat(textWidth), 0, categoryScrollView!.frame.width, categoryScrollView!.frame.height)


        categoryScrollView?.addSubview(textLabel)

        textWidth = textWidth + Int(textLabel.frame.size.width)

        if textWidth > Int(self.view.frame.width) {
            categoryScrollView?.contentSize = CGSizeMake(CGFloat(textWidth), categoryScrollView!.frame.height);

        }


    }

1 个答案:

答案 0 :(得分:0)

"页面的默认宽度"当pagingEnabled打开时,滚动视图的宽度。您可以通过将clipsToBounds设置为false来缩小宽度并让包含的视图在视图边缘之外可见。

如果这对您不起作用,还可以通过UIScrollViewDelegate方法scrollViewWillEndDragging(...)拦截拖动结束来调整分页宽度,您可以将targetContentOffset调整为满足您的需求(参见示例here)。