2016-03-23 8 views
-1

Я добавил папку ParallaxHeaderView, но у меня появляется ошибка, говорящая, что она не объявлена.Использование необъявленного типа «ParallaxHeaderView»

import UIKit 

class TimelineViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

@IBOutlet weak var tableView: UITableView! 

let cellData = CellData() 

let tableViewCellIdentifier = "tableCell" 
let bottomCellIdentifier = "bottomTableCell" 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 

    let headerImage = UIImage(named: "Shreyas.png") 

Получение ошибки на этой линии

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) Вы говорите, что получаете сообщение об ошибке «эта», но затем включаете более 100 строк кода. Какая линия является проблемой? Остальные линии, которые вы разделяете, имеют прямое значение? Если да, то суммируйте, что это за значение. 2) Пожалуйста, сообщите точную ошибку. Если выход дает какой-либо другой контекст, поделитесь этим тоже. – David

+0

Когда вы говорите, что вы добавили «папку», можете ли вы быть более конкретным? Какие файлы были задействованы, и вы сделали их частью своей цели? –

ответ

0

Если вы хотите добавить headerViews к вашему tableView? Вам понадобится пара методов UITableViewDelegate.

tableView:viewForHeaderInSection: tableView:heightForHeaderInSection

И вы можете использовать XIb файлы для создания пользовательских headerView. XIB-файлы позволяют вам больше, чем по умолчанию.