无法在 UITableViewCell 内识别 UIScrollView,无错误

Posted

技术标签:

【中文标题】无法在 UITableViewCell 内识别 UIScrollView,无错误【英文标题】:Can't get UIScrollView to be recognized inside of UITableViewCell, nil error 【发布时间】:2016-01-19 02:31:12 【问题描述】:

所以当我运行我的代码时,它会在 awakeFromNib 函数中不断出错。它似乎无法识别我从 IBOutlet 定义的 UIScrollView。这是我的 UITableViewCell 代码:

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")
                        

                    
                

所以我在另一个 ViewController 中有一个 UITableView,它有 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 变量上展开可选值时意外发现 nil”。

知道为什么我会得到这个吗?我可能没有采取最好的方式在表格内进行滚动图像查看器,但我找不到太多相关信息。

【问题讨论】:

【参考方案1】:

您可能会遇到在线错误

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

它正在解开可选值,但它发现它是nil。标识符为Cell的单元格是否注册在tableView上?

【讨论】:

我在tableScrollView.addSubview(imgTwo)在线收到错误 这意味着两者中的任何一个都为零。但是看起来 imgTwo 是在那之前设置的。您还记得从您的 XIB/Storyboard 中附加 tableScrollView 吗?

以上是关于无法在 UITableViewCell 内识别 UIScrollView,无错误的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 在实现为 UITableView 的 FooterView 时无法识别按钮的操作,具有多个页脚视图

UIView 动画在 UITableViewCell 内无法正常工作

无法更改 UITableViewCell 内 UIImageView 的宽度和高度 - swift

我的电脑上不能删除USB设备内的东西显示磁盘被写保护

浦发银行网银USBKEY无法识别,和网银U盘无法识别

U盘启动 我的电脑为啥只能识别EFI×86启动,好多制作工具在模拟EFI×86显示启动失败,原因