在自定义 UITableViewCell 上使用图像时 IOS 8 崩溃

Posted

技术标签:

【中文标题】在自定义 UITableViewCell 上使用图像时 IOS 8 崩溃【英文标题】:IOS 8 crash wen using image at a custom UITableViewCell 【发布时间】:2015-02-20 18:56:13 【问题描述】:

我正在使用自定义 UITableViewCell ,这是在 xib 文件的帮助下完成的,当我将图像放入我的 xib 文件时,我的应用程序崩溃了,这是 cellForRowAtIndexPath 方法(应用程序崩溃的前几行):

    var cell : RecipeTableViewCell? = self.tableView?.dequeueReusableCellWithIdentifier("RecipeCell") as? RecipeTableViewCell

    if(cell == nil)
    
        self.tableView?.registerNib(UINib(nibName: "RecipeCell", bundle: nil), forCellReuseIdentifier: "RecipeCell")
        cell = self.tableView?.dequeueReusableCellWithIdentifier("RecipeCell") as? RecipeTableViewCell
    

它在这一行崩溃:

self.tableView?.dequeueReusableCellWithIdentifier("RecipeCell") as? RecipeTableViewCell

我收到了这条消息: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIImageView _isResizable]:无法识别的选择器已发送到实例。

我知道 UIImageView 没有这样的方法(isResizable)它是 UIImage 的,所以有什么问题???

【问题讨论】:

【参考方案1】:

当您使用 UIImageView 代替 UIImage 时,通常会发生此错误。例如,如果您在某些动画中使用图像视图而不是图像,请检查您的RecipeTableViewCell 类并将 UIImageViews 更改为 UIImages。

【讨论】:

【参考方案2】:

我通过删除 xib 文件并重新创建它来解决这个问题,这是由于 xib 文件不干净,谢谢大家 :D

【讨论】:

我遇到了同样的问题。我看不出我的故事板出了什么问题。直到我终于明白了:在用“icon”重命名之前,我曾尝试在表格视图单元格中使用“image”作为图像的名称——这是被禁止的。但是我没有删除引用插座中的链接。这就是我崩溃的原因。 谢谢,你让我头疼不已!【参考方案3】:

对我来说,这是因为从我的 xib 中将 @IBOutlet 设置为 UIImageView,然后仅从 Swift 文件中删除出口(所以 .xib 仍然“认为”它连接到某些代码,但事实并非如此t)。

【讨论】:

以上是关于在自定义 UITableViewCell 上使用图像时 IOS 8 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在自定义 uitableviewcell 中设置图像会导致延迟

无法在自定义 UITableViewCell 中更新 UITextView 的文本

出队后,CALayer 在自定义 UITableViewCell NIB 上消失

iOS:在自定义 UITableViewCell 中更改 contentView backgroundColor on touchDown

touchesBegin 在自定义 UITableViewCell,touchesEnded 在 UIView

使用自动布局在自定义 UITableViewCell 上分页 UIScrollView