加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift – 如何从绑定到xib文件的自定义单元格继承

发布时间:2020-12-14 04:28:02 所属栏目:百科 来源:网络整理
导读:我有一个名为Normal ImageCell的自定义单元,它继承自UITableViewCell并绑定到xib.假设我想创建一个名为LargeImageCell的新单元,它继承自NormalImageCell而不创建一个全新的xib.我可以在没有接口构建器的情况下以编程方式轻松完成此操作,但是由于NormalImageC
我有一个名为Normal ImageCell的自定义单元,它继承自UITableViewCell并绑定到xib.假设我想创建一个名为LargeImageCell的新单元,它继承自NormalImageCell而不创建一个全新的xib.我可以在没有接口构建器的情况下以编程方式轻松完成此操作,但是由于NormalImageCell绑定到xib并且xib中的单元只能连接到一个自定义类和一个reuseIdentifier,我如何才能将它重用于LargeImageCell?

这适用于没有Interface Builder.

class LargeImageCell:NormalImageCell {…}

tableView.registerClass(NormalImageCell.self,forCellWithReuseIdentifier: NormalImageCell.id())
tableView.registerClass(LargeImageCell.self,forCellWithReuseIdentifier: LargeImageCell.id())

这与Interface Builder崩溃:

tableView.registerNib(NormalImageCell.nib(),forCellWithReuseIdentifier: NormalImageCell.id())
tableView.registerNib(LargeImageCell.nib(),forCellWithReuseIdentifier: LargeImageCell.id())

顺便说一下,我正在声明像这样的nib和id方法:

class NormalImageCell: UITableViewCell {

    class func id() -> String {
        return String(self)
    }

    class func nib() -> UINib { 
        return UINib(nibName: String(self),bundle: nil) 
    }
}

class LargeImageCell: NormalmageCell {
    ...
}

解决方法

你应该从主包中检索nib,如:

class func nib() -> UINib {     

   return UINib(nibName: String(self),bundle: NSBundle.mainBundle())
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读