2016-08-31 98 views
2

當我滾動例如某些偏移量時,如何更改我的tableview標題高度? 這是我的頭部實現,我使用自定義單元格作爲頭部。 但基本上我想要做的是顯示和隱藏標題時滾動在某些偏移量。iOS在滾動swift時更改UITableView標題高度

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let cell = tableView.dequeueReusableHeaderFooterViewWithIdentifier("tableViewHeader") as! MyTableViewHeaderCell 
    return cell 
} 

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 70 
} 

func scrollViewWillBeginDragging(scrollView: UIScrollView) { 
    if (scrollView.contentOffset.y>400){ 
    // i want to try to change the height of header to be 0/hidden 
} 
+0

當用戶和/或錶停止滾動時會發生什麼? – ddb

+0

嗨@ddb取決於偏移量> 400時的偏移量,當偏移量<400時隱藏 – Voyager

回答

-1
 func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
      let cell = tableView.dequeueReusableHeaderFooterViewWithIdentifier("tableViewHeader") as! MyTableViewHeaderCell 
      return cell 
     } 

     func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
      return headerHeight 
     } 

func scrollViewWillBeginDragging(scrollView: UIScrollView) { 

    if (scrollView.contentOffset.y > 400) { 
     headerHeight = 0.0; 

     if (isHidden == NO) { 

      isHidden = YES; 
      self.tableView.reloadData(); 
     } 

    } else { 
     headerHeight = 70.0; 

     if (isHidden == YES) { 

      isHidden = NO; 
      self.tableView.reloadData(); 
     } 
    } 
} 
0

我會做這樣的處理頭高度

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    if (myScrollView.contentOffset.y>400){ 
     return 70 
    } else { 
     return 0 
    } 
} 

,這對管理表視圖的標題更新

func scrollViewWillBeginDragging(scrollView: UIScrollView) { 
    if (scrollView.contentOffset.y>400 && itWasLessThan400 == true) { 
     itWasLessThan400 = false 
     myTableView.reloadData() //or reload only the needed section if you have more than one sections 
    } else if (scrollView.contentOffset.y<400 && itWasLessThan400 == false) { 
     itWasLessThan400 = true 
     myTableView.reloadData() //or reload only the needed section if you have more than one sections 
    } else 
} 

,並保持一定要設置itWasLessThan400 = trueviewDidLoad您的viewController

我希望這有助於:)

相關問題