我在 stackoverflow 上搜索了有关如何执行此操作的提示和 I found this question here但这并没有解决我的问题,我想要同样的东西(每 5 行添加一个广告after),我尝试了那里提到的解决方案,但我得到的是第一行是被广告取代,作为第5个,依此类推,我的正常内容被广告取代。
所以我想实现这个:
row 0 = normal content
row 1 = normal content
row 2 = normal content
row 3 = normal content
row 4 = normal content
row 5 = ad
row 6 = normal content
...
这是我尝试过的:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if (indexPath.row % 5 == 0 && indexPath.row != 0) {
if let cellBanner = tableView.dequeueReusableCell(withIdentifier: "cellBanner", for: indexPath) as? BannerCell {
return cellBanner
} else {
return UITableViewCell()
}
} else {
if let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? AnuncioCell {
if AnunciosService.instance.anuncios.count >= indexPath.row {
let anuncio = AnunciosService.instance.anuncios[indexPath.row]
let rowsToLoadFromBottom = 5;
let rowsLoaded = AnunciosService.instance.anuncios.count
if (!self.fetchingMore && (indexPath.row - (indexPath.row / 5) >= (rowsLoaded - rowsToLoadFromBottom))) {
let totalRows = AnunciosService.instance.anunciosCount
let remainingAnunciosToLoad = totalRows - rowsLoaded;
if (remainingAnunciosToLoad > 0) {
self.loadMoreAnuncios()
}
}
cell.configureCell(anuncio: anuncio)
let checkValue = Double(anuncio.user.nota)!
if checkValue < 1.0 {
cell.notaView.isHidden = true
}else{
cell.notaView.isHidden = false
}
if anuncio.destaque {
cell.destaque.isHidden = false
} else {
cell.destaque.isHidden = true
}
if anuncio.status == 0 {
if cell.imgAnuncio.image != nil{
Noir(originalImage: cell.imgAnuncio)
}
cell.sold_out.isHidden = false
cell.selectionStyle = .none
cell.isUserInteractionEnabled = false;
} else {
cell.sold_out.isHidden = true
cell.isUserInteractionEnabled = true;
cell.selectionStyle = .default
}
}
return cell
} else {
return UITableViewCell()
}
}
}
numberOfRowsInSection:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if AnunciosService.instance.anuncios.count == 0 {
return 0
}
return AnunciosService.instance.anuncios.count + BannersService.instance.banners.count
}
Best Answer-推荐答案 strong>
我做错了,对于那些想知道我如何解决它的人:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let index = indexPath.row + 1
if (index % 6 == 0 && indexPath.row != 0 && index/6 <= BannersService.instance.banners.count) {
let cellBanner = tableView.dequeueReusableCell(withIdentifier: "cellBanner", for: indexPath) as! BannerCell
return cellBanner
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! AnuncioCell
let index = indexPath.row - (indexPath.row / 6)
if AnunciosService.instance.anuncios.count > index {
let anuncio = AnunciosService.instance.anuncios[index]
let rowsToLoadFromBottom = 5;
let rowsLoaded = AnunciosService.instance.anuncios.count
if (!self.fetchingMore && (index >= (rowsLoaded - rowsToLoadFromBottom))) {
let totalRows = AnunciosService.instance.anunciosCount
let remainingAnunciosToLoad = totalRows - rowsLoaded;
if (remainingAnunciosToLoad > 0) {
self.loadMoreAnuncios()
}
}
cell.configureCell(anuncio: anuncio)
let checkValue = Double(anuncio.user.nota)!
if checkValue < 1.0 {
cell.notaView.isHidden = true
}else{
cell.notaView.isHidden = false
}
if anuncio.destaque {
cell.destaque.isHidden = false
} else {
cell.destaque.isHidden = true
}
if anuncio.status == 0 {
if cell.imgAnuncio.image != nil {
Noir(originalImage: cell.imgAnuncio)
}
cell.sold_out.isHidden = false
cell.selectionStyle = .none
cell.isUserInteractionEnabled = false;
} else {
cell.sold_out.isHidden = true
cell.isUserInteractionEnabled = true;
cell.selectionStyle = .default
}
}
return cell
}
}
关于ios - 在表格 View 中每 5 个单元格后添加一个广告正在替换内容,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/53567357/
|