2015-11-05 40 views
1

我目前正在使用包含节索引的表视图在swift中处理ios上的项目。 我想在表格视图顶部隐藏部分索引,然后在开始向下滚动时显示它。通常,音乐应用程序是什么。在滚动时淡入淡出UITableView节索引

我已经在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

也许你可以设置索引视图的高度为0当你的滚动y位置为空 – Moose

+0

我从来没有这样做过,但也许你可以使用一个额外的UIView,当你滚动开始时粘贴在UITableView之上或特定的indexPath已经达到..? – Laffen

回答

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点滚动期间的区段索引淡入淡出。只要改变你喜欢的任何值,如果你想慢慢或更快地淡化它。

要开始隐藏部分指标设置两种颜色来clearColor在viewDidLoad

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

非常感谢!你知道有什么方法让显示/隐藏动画? – meteorSD

+0

是的,我刚刚找到了一种方法。看到我更新的答案。 – joern