尝试将自定义单元格添加到表视图时出错

问题描述 投票:0回答:2

我正在尝试将自定义单元格添加到我的tableview中

这是我为自定义CustomProfileView.xib文件配置的

enter image description here

Main.storyboard

enter image description here

我不断得到

使用未声明的类型'CustomProfileCell'

这是我的整个代码

//
//  FirstViewController.swift
//  tabbed
//
//  Created by Ben Heng on 7/18/18.
//  Copyright © 2018 LR Web Design. All rights reserved.
//

import UIKit

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var profileTableView: UITableView!

    var profileArray = [Profile]()

    override func viewDidLoad() {
        super.viewDidLoad()

        profileTableView.delegate = self
        profileTableView.dataSource = self
        profileTableView.register(UINib(nibName: "ProfileCell",bundle: nil) , forCellReuseIdentifier: "CustomProfileCell")

        retrieveProfiles()

    }



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

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


        let cell = tableView.dequeueReusableCell(withIdentifier: "customProfileCell", for: indexPath) as! CustomProfileCell

        cell.profileImage.image = UIImage(named: profileArray[indexPath.row].profileImage)
        cell.profileName.text = profileArray[indexPath.row].name
        cell.deviceCount.text = profileArray[indexPath.row].deviceCount

        return (cell)
    }



    func retrieveProfiles() {

        let p1 = Profile()
        p1.name = "John"
        p1.deviceCount = "10"
        p1.profileImage = "john"
        profileArray.append(p1)

        let p2 = Profile()
        p2.name = "Jane"
        p2.deviceCount = "5"
        p2.profileImage = "jane"
        profileArray.append(p2)

        let p3 = Profile()
        p3.name = "Andrew"
        p3.deviceCount = "4"
        p3.profileImage = "andrew"
        profileArray.append(p3)

        self.profileTableView.reloadData()


    }

}
ios xcode uitableview xcode9
2个回答
2
投票

根据你的快速命名CustomProfileViewCell

let cell = tableView.dequeueReusableCell(withIdentifier: "customProfileCell", for: indexPath) as! CustomProfileViewCell

//

profileTableView.register(UINib(nibName: "CustomProfileViewCell",bundle: nil) , forCellReuseIdentifier: "customProfileCell")

1
投票

请先阅读this,它解释了reuseIdentifier的工作原理及其含义。

首先你的笔尖名称是CustomProfileViewCell,但是你正在用ProfileCell名称注册笔尖。

第二个错误是您在故事板中使用ProfileCell标识符,该标识符应与您定义的标识符相同,即customProfileCell

您的单元格注册应如下所示

profileTableView.register(UINib(nibName: "CustomProfileViewCell",bundle: nil) , forCellReuseIdentifier: "customProfileCell")

然后你想在这里使用它:

let cell = tableView.dequeueReusableCell(withIdentifier: "customProfileCell", for: indexPath) as! CustomProfileViewCell
© www.soinside.com 2019 - 2024. All rights reserved.