使用未声明的类型“ParallaxHeaderView”

时间:2016-03-23 17:26:16

标签: ios swift swift2

我添加了ParallaxHeaderView文件夹但是我收到一条错误消息,说它未声明。

    let headerView: ParallaxHeaderView = ParallaxHeaderView.parallaxHeaderViewWithImage(headerImage, forSize: CGSizeMake(self.view.frame.size.width, 200.0)) as! ParallaxHeaderView

    // Tap Gesture to return to previous view
    headerView.userInteractionEnabled = true
    let tapGesture = UITapGestureRecognizer(target: self, action: "headerTapped")
    headerView.addGestureRecognizer(tapGesture)

    // Label settings
    headerView.headerTitleLabel.font = UIFont(name: "HelveticaNeue-Medium", size: CGFloat(32.0))
    headerView.headerTitleLabel.text = "Shreyas Papinwar"
    headerView.headerTitleLabel.frame.origin.y -= 60.0

    self.tableView.tableHeaderView = headerView

    tableView.dataSource = self
    tableView.delegate = self
}

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {

    if segue.identifier == "facebook.Segue" {
        let webVC: WebViewController = segue.destinationViewController as! WebViewController
        webVC.webURL = "https://facebook.com/the3seconds"
    }

    else if segue.identifier == "twitterSegue" {
        let webVC: WebViewController = segue.destinationViewController as! WebViewController
        webVC.webURL = "https://twitter.com/spapinwar"
    }

    else if segue.identifier == "docSegue" {
        let webVC: WebViewController = segue.destinationViewController as! WebViewController
        webVC.webURL = "http://github.com"
    }

    else if segue.identifier == "sheetSegue" {
        let webVC: WebViewController = segue.destinationViewController as! WebViewController
        webVC.webURL = "http://google.com"
    }

    else {
        print("Unexpected segue identifier: \(segue.identifier)")
    }

}

// MARK: - UITableViewDataSource methods

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 2
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if section == 0 {
        return cellData.cells.count
    }
    else {
        return 1
    }

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    if indexPath.section == 0 {
        let cell = tableView.dequeueReusableCellWithIdentifier(tableViewCellIdentifier, forIndexPath: indexPath) as! TimelineTableViewCell

        let entry = cellData.cells[indexPath.row]

        let cellDate = entry.date
        let cellLineImage = UIImage(named: entry.line)

        cell.tableCellDate.text = cellDate
        cell.tableCellLineImage.image = cellLineImage
        cell.tableCellLabel.text = entry.labelText

        return cell
    }
    else {
        let bottomCell = tableView.dequeueReusableCellWithIdentifier(bottomCellIdentifier, forIndexPath: indexPath) as! BottomTableViewCell

        return bottomCell
    }
}

// MARK: - UITableView methods

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if indexPath.section == 0 {
        return CGFloat(160.0)
    }
    else {
        return CGFloat(300.0)
    }
}

// MARK: - UITableViewDelegate methods

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.deselectRowAtIndexPath(indexPath, animated: true)

    let row = indexPath.row

    print(cellData.cells[row].labelText)
}

// MARK: UIScrollViewDelegate methods

func scrollViewDidScroll(scrollView: UIScrollView) {
    let header: ParallaxHeaderView = self.tableView.tableHeaderView as! ParallaxHeaderView
    header.layoutHeaderViewForScrollViewOffset(scrollView.contentOffset)

    self.tableView.tableHeaderView = header
}

// MARK: - Helper methods

func headerTapped() {
    self.dismissViewControllerAnimated(true, completion: nil)
}

在此行中获取错误

{{1}}

}

1 个答案:

答案 0 :(得分:0)

如果您想在headerViews添加tableView?您需要几种UITableViewDelegate方法。

tableView:viewForHeaderInSection:  tableView:heightForHeaderInSection

您可以使用XIB文件创建自定义headerView。 XIB文件允许您超过默认值。