ios 我收到错误- nib必须正好包含一个顶级对象,该对象必须是UITableViewCell示例'“

monwx1rj  于 2022-12-15  发布在  iOS
关注(0)|答案(9)|浏览(127)

我在我的tableView中使用了一个自定义单元格,但是当我运行时,我得到了我在问题中提到的错误。

self.districtTableView.register(UINib(nibName: "PlaceCollectionViewCell", bundle: nil), forCellReuseIdentifier: "placeCell")

 func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    return false
}

func textFieldDidEndEditing(_ textField: UITextField) {
    // TODO: Your app can do something when textField finishes editing

    print("The textField ended editing. Do something based on app requirements.")
}

func numberOfSections(in tableView: UITableView) -> Int {
     return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return districts.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "placeCell") as! PlaceTableViewCell
    // Set text from the data model
    cell.distLabel.text = districts[indexPath.row]
    cell.textLabel?.font = distTextField.font
    return cell

我怎样才能摆脱这个错误。我已经使用不同的方法注册一个单元格在表格视图。但它不工作。请帮助

yxyvkwin

yxyvkwin1#

我从界面生成器(XIB)添加了点击手势

删除将解决此问题。
必须通过编程的方式在xib中添加手势

vaqhlq81

vaqhlq812#

在我的例子中,这是一个在细胞外添加的视图。它不应该在那里

6tqwzwtp

6tqwzwtp3#

在一个.xib文件中有多个表视图单元格也会导致这个错误。将表视图单元格移到它们自己单独的.xib文件中解决了我的错误。
nib只能包含一个顶级对象,该对象必须是UITableViewCell示例

to94eoyn

to94eoyn4#

打开“PlaceCollectionViewCell.xib”文件。确保只有一个顶级视图(查看侧面板,而不仅仅是画布,它可能不可见)。确保为视图分配了UITableViewCell(不是UICollectionViewCell,xib名称看起来很可疑)的子类以及重用标识符。

cgfeq70w

cgfeq70w5#

如果您正在使用tableviewcell的xib,则在viewDidLoad中注册您的xib,如下所示。

tableView.registerNib(UINib(nibName: "PlaceTableViewCell", bundle: nil), forCellReuseIdentifier: "placeCell")

如果您使用的是tableViewcell的自定义类,那么试试这个,

let placeCell : PlaceTableViewCell = tableView.dequeueReusableCell(withIdentifier: "placeCell") as! PlaceTableViewCell

因为我看到你的代码工作几乎是正确的。希望我的答案对你有帮助。

eeq64g8w

eeq64g8w6#

这个错误可能是误导的。我不知何故拖了一些视图到我的单元格,它创建了主视图之外的另一个级别的视图。只是从你的xib中删除它。

3hvapo4f

3hvapo4f7#

我也遇到过同样的问题,就是我的牢房里没有所有必要的约束。

of1yzvn4

of1yzvn48#

确保“属性检查器”面板中的“标识符”属性设置为代码中指定的重用标识符。

oxcyiej7

oxcyiej79#

我在MacOS中使用NSCollectionView时遇到了一个非常相同的问题,最后发现我必须将一个NSCollectionViewItem拖放到收藏视图的item xib文件中。

相关问题