2015-11-05 59 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