首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可扩展和可挖TableViewCells

可扩展和可挖TableViewCells
EN

Stack Overflow用户
提问于 2021-03-04 16:54:14
回答 1查看 45关注 0票数 0

我正在尝试执行以下逻辑:如果cell1被点击,它应该扩展它的高度。然后,如果cell2被点击,它应该扩展它的高度并将cell1返回到它原来的高度,这样只能扩展一个单元格。

,这是我当前的代码,但是它扩展了所有的单元格,没有做我想做的事情:

代码语言:javascript
复制
@IBOutlet weak var poemasTableView: UITableView!
var isExpanded = true

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        
        if isExpanded == true {
            return 55
        } else {
            return 240
        }
    }

我的TableViewCell有一个按钮,我要添加这个函数:

代码语言:javascript
复制
@objc func cambiarTamaño() {
        poemasTableView.beginUpdates()
        isExpanded = !isExpanded
        poemasTableView.endUpdates()
    }

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-03-04 17:54:32

您需要跟踪选择了哪个单元格,然后在heightForRowAt中检查该单元格是否是选定的单元格。

代码语言:javascript
复制
var selected: IndexPath?

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row == selected?.row {
        return 240
    } else {
        return 55
    }
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if selected == indexPath {
        selected = nil
    } else {
        selected = indexPath
    }
    tableView.reloadData()
}

看起来您想要使用表视图单元格中的一个按钮来实现这一点,因此您需要将indexPath传递到单元格中,然后当按下该按钮时,将indexPath传递回表视图类以更新selected变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66479512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档