2016-07-26 4 views
0

Я пытаюсь настроить расширение для Parallax Header. Однако это не работает отлично. Представление заголовка таблицы всегда плавает и перекрывает ячейки.Swift - Parallax Header View - ScrollView перекрывает ячейки

enter image description here

код Extension:

extension UITableView { 

    func addImageHeaderView(headerView headerView: UIView, height: CGFloat) { 
    self.contentInset = UIEdgeInsetsMake(height, 0, 0, 0) 
    self.contentOffset = CGPoint(x: 0, y: -height) 
    self.tableHeaderView = headerView 
    self.tableHeaderView?.frame = CGRect(x: 0, y: 0, width: self.bounds.width, height: height) 
    } 

    func updateHeaderView(height kTableHeaderHeight: CGFloat) { 

    var headerRect = CGRect(x: 0, y: -kTableHeaderHeight , width: self.bounds.width, height: kTableHeaderHeight) 
    if self.contentOffset.y < -kTableHeaderHeight { 
     headerRect.origin.y = self.contentOffset.y 
     headerRect.size.height = -self.contentOffset.y 
    } 
    self.tableHeaderView?.frame = headerRect 
    } 

} 

Реализация Код:

tableView.addImageHeaderView(headerView: viewHeader, height: 100) 

func scrollViewDidScroll(scrollView: UIScrollView) { 
     tableView.updateHeaderView(height: 200) 
    } 

Я ошибаюсь в чем-то? Пожалуйста, покажите мне, знаете ли вы.

ответ

0

Можете ли вы пытаетесь установить следующее в viewDidLoad

self.edgesForExtendedLayout = UIEdgeInsetsZero; 

в быстрой

self.edgesForExtendedLayout = .None 

Кроме того, что вы можете попытаться сделать это, чтобы проверить результат следующего

tableView.addImageHeaderView(headerView: viewHeader, height: 0) 

func scrollViewDidScroll(scrollView: UIScrollView) { 
     tableView.updateHeaderView(height: 200) 
    } 

Обратите внимание, что я изменил высоту с 100 к я сделал это потому, что значение высоты изменит contentInset вашего зрения таблицы, и это именно расстояние от верхнего угла

+0

Невозможно присвоить значение типа «UIEdgeInsets» к типу «UIRectEdge». Получил эту ошибку. –

+0

Извините .. вы используете swift :) я обновил ответ .. –

+0

Спасибо! Я нашел это, но никакого эффекта. : | –