• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 在表格 View 中每 5 个单元格后添加一个广告正在替换内容

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:54:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在 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-推荐答案


我做错了,对于那些想知道我如何解决它的人:

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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap