我正在尝试在自定义表格中添加自定义单元格
这是我为自定义 CustomProfileView.xib 文件
配置的内容Main.storyboard
我不断得到
使用未声明的类型'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()
}
}
答案 0 :(得分:2)
根据你的名字CustomProfileViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "customProfileCell", for: indexPath) as! CustomProfileViewCell
//
profileTableView.register(UINib(nibName: "CustomProfileViewCell",bundle: nil) , forCellReuseIdentifier: "customProfileCell")
答案 1 :(得分: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