【iOS】让StaticCell和PrototypeCell“共存”的解决方法

1.需求场景

类似于静态固定功能性cell + 下边动态数据展示性cell,如图所示:

班级列表是动态数量的cell

2.问题分析

众所周知Storyboard支持TableViewController上的StaticCells类型,可实现上部功能性的cell,但下部的数量变化的cell就无法在该TableViewController上共存了

3.一种思路

注册多个PrototypeCells,但对顶部和下部的cell进行不同场景的复用,然后将复用的cell存储成属性,以模拟达到静态的作用

4.具体实现

Storyboard布局
// 属性
private var phoneCell: UITableViewCell!{
        didSet{
            // 做一些初始化设置
        }
    }
    private var passwordCell: UITableViewCell!{
        didSet{
             // 做一些初始化设置
        }
    }

// cell 复用
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let section = indexPath.section
        let row = indexPath.row
        
        if section == 0 && row == 0{ //手机号
            phoneCell = phoneCell ?? tableView.dequeueReusableCell(withIdentifier: "PhoneCell", for: indexPath)
            return phoneCell
        }
        else if section == 0 && row == 1{ //密码
            passwordCell = passwordCell ?? tableView.dequeueReusableCell(withIdentifier: "PasswordCell", for: indexPath)
            return passwordCell
        }
        
// 班级
        let cell = tableView.dequeueReusableCell(withIdentifier: "SchoolCell", for: indexPath)

        return cell
    }

5.最终效果

“静态”cell表现良好,不受影响

6.源码

https://github.com/BackWorld/HybridStaticPrototypeCellDemo

如果对你有帮助,别忘了给个⭐️或点个❤️哦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,388评论 30 472
  • 文/暮城雪 早晨六点起床,匆匆拉着行李跑到公交车站。在我拖着行李奔向918路时,车门砰的关上了,呼啸而去,被拒之门...
    暮城雪阅读 4,068评论 2 2
  • 我和很多自己创业者有着差不多的人生经历,出生在农村的我没上过几年学,初中毕业后干过很多行业,服装加工,饭店,进过工...
    格格灵性养生使者阅读 3,793评论 2 2
  • 盼着盼着,有了相逢 陪着陪着,生了别离 笑着笑着,暖了心房 哭着哭着,醉了时光 走着走着,美了岁月
    邹海诗歌阅读 2,713评论 0 2