滚动时淡入淡出UITableView部分索引

时间:2015-11-05 13:37:20

标签: ios uitableview

我目前正在使用包含段索引的表视图在swift上的ios项目上工作。 我希望在表格视图的顶部隐藏部分索引,然后在我开始向下滚动时显示它。通常音乐应用程序是什么。

我在UITableView中搜索了段索引属性,但是我找不到任何隐藏它的内容。

任何人都可以帮助我吗?

我在这个函数中实现了section索引:

    override func sectionIndexTitlesForTableView(tableView: UITableView) -> [String]? {

        return everySections

    }

这是everySections声明:

    var everySections : [String] {
        get {
            let tempArray = Array(artistsSectioned.keys) as [String]
            let tempEverySections = tempArray.sort(<)

            return tempEverySections
        }
    }

1 个答案:

答案 0 :(得分:3)

您可以使用部分索引颜色和背景颜色来淡入和缩小部分索引:

将tableView委托设置为self并实现此UIScrollViewDelegate方法:

func scrollViewDidScroll(scrollView: UIScrollView) {
    var alpha: CGFloat = 1
    if scrollView.contentOffset.y < 1 {
        alpha = 0
    } else if scrollView.contentOffset.y >= 1 && scrollView.contentOffset.y < 20 {
        alpha = scrollView.contentOffset.y / CGFloat(20)
    }
    tableView.sectionIndexColor = UIColor(red: 0, green: 0, blue: 0, alpha: alpha)
    tableView.sectionIndexBackgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: alpha)
}

这会在前20页的滚动过程中淡入和缩小部分索引。如果你想要更慢或更快地淡化它,只需更改你想要的任何值。

要最初隐藏部分索引,请将两种颜色设置为viewDidLoad中的clearColor:

tableView.sectionIndexColor = UIColor.clearColor()
tableView.sectionIndexBackgroundColor = UIColor.clearColor()