我想制作一个cell
变量,并指定dequeueReusableCell
以避免重复代码。我不知道我该怎么做。类型'UITableViewCell'的值没有成员
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell : UITableViewCell!
if let url = media.url {
if Helper.isImageType(url: url)
{
cell = tableView.dequeueReusableCell(withIdentifier: newsFeedImageTableViewViewCellId, for: indexPath) as! NewsFeedImageTableViewViewCell
cell.imageTappedDelegate = self
}else
{
cell = tableView.dequeueReusableCell(withIdentifier: newsFeedVideoTableViewViewCellId, for: indexPath) as! NewsFeedVideoTableViewViewCell
cell.videoTappedDelegate = self
}
cell.linkTappedDelegate = self
cell.backgroundColor = UIColor(rgb: 0xF2F2F2)
cell.isAccessibilityElement = true
cell.selectionStyle = .none
tableViewIndex = indexPath
if let _states = states?[indexPath.section]{
cell.state = _states[indexPath.row]
}
return cell
}
return UITableViewCell()
}
如果你看到我的代码,它唯一的区别
let cell = tableView.dequeueReusableCell(withIdentifier: newsFeedVideoTableViewViewCellId, for: indexPath) as! NewsFeedImageTableViewViewCell
而且
let cell = tableView.dequeueReusableCell(withIdentifier: newsFeedVideoTableViewViewCellId, for: indexPath) as! NewsFeedVideoTableViewViewCell
的代码,其他线路是相同的。
我想声明变量这一点,但它不工作:
let cell: UITableViewCell!
类型的值 '的UITableViewCell' 没有成员 'imageTappedDelegate'
更新: - 增加细胞类定义:
class NewsFeedTableViewViewCell : BaseTableViewCell{
var statisticsSlidingCellId = "statisticsSlidingCellId"
var linkTappedDelegate : LinkTappedDelegate!
var state : State?{
didSet{
}
}
}
class NewsFeedImageTableViewViewCell: NewsFeedTableViewViewCell{
var imageTappedDelegate : ImageTappedDelegate!
}
class NewsFeedVideoTableViewViewCell : NewsFeedTableViewViewCell{
var videoTappedDelegate : VideoTappedDelegate!
}
如何声明你的两个Cell类? - “NewsFeedImageTableViewViewCell”和“NewsFeedVideoTableViewViewCell”。在减少'tableView(_:cellForRowAt:)'中的一些代码之前,你是否减少了两个类中的重复代码? – OOPer
'NewsFeedImageTableViewViewCell'和'NewsFeedVideoTableViewViewCell'继承'NewsFeedTableViewViewCell'。 –
为什么不将'cell'声明为'NewsFeedTableViewViewCell',如果它具有所有通用属性呢? – OOPer