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
コードの他の行は同じです。追加セルクラス - :
私は変数これを宣言しようとしていますが、それは動作していない:型 'のUITableViewCell' の
let cell: UITableViewCell!
値にはメンバーのimageTappedDelegate "
UPDATEを持っていません定義:
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!
}
どのように2つのCellクラスを宣言しますか? - 'NewsFeedImageTableViewViewCell'と' NewsFeedVideoTableViewViewCell'。 'tableView(_:cellForRowAt:)'のコードを減らす前に、2つのクラスの重複コードを減らしましたか? – OOPer
'NewsFeedImageTableViewViewCell'と' NewsFeedVideoTableViewViewCell'が 'NewsFeedTableViewViewCell'を継承しました。 –
'cell'を' NewsFeedTableViewViewCell'として宣言してみましょう。 – OOPer