2016-01-19 4 views
0

Так что, когда я запускаю свой код, он продолжает выходить из строя в функции awakeFromNib. Кажется, он не распознает мой UIScrollView, который я определил из IBOutlet. Вот мой UITableViewCell код:Невозможно распознать UIScrollView внутри UITableViewCell, ошибка nil

import UIKit 

class ItemDetailsCell: UITableViewCell, UIScrollViewDelegate { 


    @IBOutlet weak var centerImage: UIImageView! 

    @IBOutlet weak var labelBlack: UILabel! 

    @IBOutlet weak var heading: UILabel! 

    @IBOutlet weak var body: UILabel! 

    @IBOutlet weak var tableScrollView: UIScrollView! 


    var pageImages: [UIImage] = [] 
    var pageViews: [UIImageView?] = [] 

    static var parentView : ItemDetailsVC!; 


    override func awakeFromNib() { 
     super.awakeFromNib() 

     //tableScrollView.delegate = self; 
     var scrollViewWidth = ItemDetailsCell.parentView.scrollViewWidth 
     var scrollViewHeight = ItemDetailsCell.parentView.scrollViewHeight 

     if let tableCheck = ItemDetailsCell.parentView.scrollImages as [Dictionary<Int,UIImage>]? { 
      if ItemDetailsCell.parentView.scrollImages.count > 0 { 
       for var subviewCounter: Int = 0; subviewCounter <= tableCheck.count; subviewCounter++ { 
        for scrollImage in tableCheck { 
         if let imgToInsert = scrollImage[subviewCounter] as UIImage? { 
          let viewWidth = CGFloat(subviewCounter-1) 
          let imgTwo = UIImageView(frame: CGRectMake(scrollViewWidth * viewWidth, 0, scrollViewWidth, scrollViewHeight)) 
          imgTwo.image = imgToInsert 
          imgTwo.contentMode = .ScaleAspectFit 
          imgTwo.userInteractionEnabled = true 
          var gesture = UITapGestureRecognizer(target: self, action: "tappedOnImage:") 
          var pinchGesture = UIPinchGestureRecognizer(target: self, action: "pinchedImage:") 
          imgTwo.addGestureRecognizer(gesture) 
          imgTwo.addGestureRecognizer(pinchGesture) 
          tableScrollView.addSubview(imgTwo) 
         } else { 
          println("no match") 
         } 

        } 
       } 

Так у меня есть UITableView в моем другом ViewController и имеет 2 прототипа ячеек, одна с UIScrollView, а другой только с текстовыми метками. Вот мой код для UITableView:

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

     if indexPath.row == 0 { 

     let myCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! ItemDetailsCell 

     myCell.centerImage.image = mainImage 

      myCell.heading.text = detailsHeadings[indexPath.row] 
      let headingString = detailsHeadings[indexPath.row] 
      myCell.body.text = details[headingString] 

     println("Label Height") 
     println(myCell.labelBlack.frame.height) 
     myCell.tableScrollView.frame = scrollViewOrigFrame 

     return myCell 

     } else { 

ошибки я получаю, когда он загружает я получаю сообщение об ошибке, «Фатальная ошибка: неожиданно нашла ноль в то время как разворачивание необязательного значения» на переменной tableScrollView.

Любая идея, почему я получаю это? Я, вероятно, не делаю лучшего способа сделать просмотрщик прокрутки внутри таблицы, но я не мог найти много информации об этом.

ответ

0

Вы, вероятно, получить ошибку на линии

let myCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! ItemDetailsCell 

Он разворачивает факультативное значение, но он нашел его в качестве nil. Является ли ячейка с идентификатором Cell зарегистрированной в таблицеView?

+0

Я получаю сообщение об ошибке в строке 'tableScrollView.addSubview (imgTwo)' – Joe

+0

Это означает, что любой из них равен нулю. Но похоже, что imgTwo установлен за несколько минут до этого. Не помните ли вы прикрепить таблицуScrollView с вашего XIB/Storyboard? –

Смежные вопросы