当前单元格展开时折叠其他 UITableViewCell

2024-01-23

我正在努力扩展我的UITableViewCell我可以扩展细胞。但我想崩溃UITableViewCell哪些没有被选中。

我在代码中尝试的内容:

var expandedCells = [Int]()
@IBOutlet weak var tableVieww:UITableView!
@IBAction func buttonPressed(_ sender: AnyObject) {
    // If the array contains the button that was pressed, then remove that button from the array
    if expandedCells.contains(sender.tag) {
        expandedCells = expandedCells.filter({ $0 != sender.tag})
    }
        // Otherwise, add the button to the array
    else {
        expandedCells.append(sender.tag)
    }
    // Reload the tableView data anytime a button is pressed
    tableVieww.reloadData()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 20

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! exampleCell
    cell.myButton.tag = indexPath.row
    return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // Set the row height based on whether or not the Int associated with that row is contained in the expandedCells array
    if expandedCells.contains(indexPath.row) {
        return 212
    } else {
        return 57
    }
}

您可以维护一个变量来维护选定的索引,如下所示,

var expandedIndexPath: IndexPath?

然后更新您的 tableView 委托,如下所示,

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    expandedIndexPath = indexPath // Update the expandedIndexPath with the selected index
    tableView.reloadData() // Reload tableview to reflect the change
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // Check wether expanded indexpath is the current index path and updated return the respective height
    if expandedIndexPath == indexPath {
        return 212
    } else {
        return 57
    }
}

这应该可以正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当前单元格展开时折叠其他 UITableViewCell 的相关文章

随机推荐

  • 为什么 spring-websocket 中的 STOMP 功能依赖于 Spring MVC?

    目前 我正在尝试使用 webflux 将 STOMP 与 websockets 结合使用 为了向 STOMP 主题发送消息 我需要使用SimpMessagingTemplate 这是我添加时由 spring boot 自动配置提供的 Ena
  • 将字节数组转换为任意基数

    我有一个字节数组 任意长度 我想使用我自己的基本编码器将此数组编码为字符串 在 NET是标准的Base64编码器 但是如果我想将数组编码为Base62 Base53 or Base13 是否有可能创建这样的通用基础编码器 我知道我可以用简单
  • 无法安装 expo 包并出现错误:yarnpkg 退出时显示非零代码:1 yarnpkg 退出时显示非零代码:1

    我目前正在尝试使用以下命令将我的 Expo SDK 从 36 0 0 更新到至少 37 0 0expo update但是我收到错误 Failed to install expo package with error yarnpkg exit
  • 具有默认参数的 JavaScript 函数

    我目前使用以下函数来检查三个参数以查看是否有任何参数通过 这是在没有发送参数的情况下设置默认值的最佳方法吗 function setupSlideshow t e s e e slideshow s s gt li t t 70 timeo
  • 与我的模型相关,我应该有多少个 DbContext 子类?

    我正在学习 ASP NET MVC 但我遇到了一些问题 到目前为止我读过的教程还没有以涵盖我的方式进行探讨 我尝试过搜索 但没有看到任何询问此问题的问题 不过 如果我错过了现有的 请原谅我 如果我有一个 ASP NET MVC 应用程序 它
  • 如何解决重叠实例

    我有以下代码 转换类似于转换 instance OVERLAPS Transformable a a where transform x x instance OVERLAPPABLE Transformable l l Transform
  • MySQL 上的奇怪完整性错误:#1452

    这有点奇怪 但我会尽力解释 我有 2 个模型 一个代表电子邮件消息 Message 另一个代表销售线索 AffiliateLead 当通过网站提交表单时 系统会生成潜在客户 然后发送电子邮件 消息模型有一个可选的 FK 返回到领导 从消息模
  • 使用 ExtJS 网格列标题中的 ListFilter 进行远程过滤

    我正在使用 ListFilter 插件来过滤网格面板上的结果 列定义是 header Provider filter type list store Ext getStore MyApp store Provider dataIndex p
  • 如何将数据从 iOS 发送回 Flutter?

    我正在尝试让 iOS 将数据发送回 flutter 更具体地说 是控制中心媒体控制 我正在开发一个音乐应用程序 我可以获取从 Flutter 发送到 iOS 的数据 从而允许它显示在媒体控件中 但是 如果我要控制播放暂停下一个上一个 我该如
  • Django:按月/年分组的日期属性的总和

    我想将此查询从 SQL 放入 Django select date format date Y m as month sum quantity as hours from hourentries group by date format d
  • VBA 代码无法连接到 SQL Server 2008

    我的代码无法连接到 Microsoft SQL Server 2008 中的数据库 它尝试连接 但随后出现以下错误 运行时错误 SQL Server 不存在或访问被拒绝 服务器受密码保护 但我认为是我造成的 任何帮助将不胜感激 发生错误的地
  • 如何仅翻转变换矩阵的一个轴?

    我有一个 4x4 变换矩阵 然而 在尝试转换后我注意到这个动作andY 轴的旋转方向相反 其余的都是正确的 我从其他一些 API 获得了这个矩阵 所以可能是坐标系的差异 那么 如何翻转变换矩阵的轴呢 如果只有平移 我可以在 Y 平移上添加减
  • 查找类以按名称实例化,无需命名空间或程序集? (。网)

    我想按名称 字符串 实例化一个类 而不指定命名空间或程序集 像这样 Unity语法 var processor container Resolve
  • HttpClient 与 HttpWebRequest

    我有一个大文件 我必须将其发送到 Web api 客户端 数据是多部分的 问题是 如果文件是通过 http Web 请求发送的 那么它会在 webapi 上快速上传 对于此请求 文件内容直接写入请求流 就好像通过 Httpclient ne
  • 绕过 Rsync 提示“您确定要继续连接吗”

    如何绕过这个问题或添加一个自动回答这个问题的标志 因为我正在尝试编写一个脚本 并且这个问题不断停止 rsync 的过程 因为在提示时无法在脚本中回答这个问题 Set the StrictHostKeyChecking选项no 在配置文件中或
  • OpenCV-Python 中的简单数字识别 OCR

    我正在尝试在 OpenCV Python cv2 中实现 数字识别 OCR 它仅用于学习目的 我想学习 OpenCV 中的 KNearest 和 SVM 功能 我有每个数字 100 个样本 即图像 我想和他们一起训练 有一个样本letter
  • 通过 Java 使用 Selenium Webdriver 缺少 size() 选项

    一直在参加一些课程来提高我使用 Selenium Webdriver 的自动化技能 我没有size 方法作为尝试计算页面内链接数量时的一个选项 我缺少一些罐子吗 导入库 java public static void main String
  • SVG 坐标系 - 点与像素

    阅读通过SVG 1 1 规范 http www w3 org TR SVG11 coords html 我试图理解用于定义初始视口的单位与文档其余部分使用的单位之间的关系 如果视口最初是使用点定义的
  • 我的 $Foo ATL 解决方案中的 ($Foo)PS 项目有何用途?

    在MSVC中创建一个ATL项目似乎创建的不是一个而是两个项目 后者的名称与前者相同 但名称后附加了 PS 第二个项目的目的是什么 我如何判断我是否需要它 COM 支持跨两个不同的线程 两个不同的进程或两台不同的机器进行接口方法调用 这就是所
  • 当前单元格展开时折叠其他 UITableViewCell

    我正在努力扩展我的UITableViewCell我可以扩展细胞 但我想崩溃UITableViewCell哪些没有被选中 我在代码中尝试的内容 var expandedCells Int IBOutlet weak var tableView