ios - 当其中一项被删除时如何调整TableView高度

标签 ios swift uitableview swift3

最初我想创建一个UITableView,它根据其内容大小具有动态高度,并遵循stackoverflow的问题来克服这种情况。那么在解决这个问题后实现了什么:

func autoAdjustToTableView(){

        numberTableView.frame = CGRect(x: numberTableView.frame.origin.x, y: numberTableView.frame.origin.y, width: numberTableView.frame.size.width, height: numberTableView.contentSize.height)

    }

在回答这个问题时,有人建议我应该从 viewDidAppearviewDidLayoutSubViews 中调用这个东西,他也调用了

tableView.reloadData() 

viewDidLayoutSubviews

所以我的第一个问题为什么我必须在我的代码 viewDidLayoutSubviews ??

虽然它工作正常,直到我从 tableView 中删除一个项目并调用相同的函数,但它并没有给我带来动态变化。这就是我要删除它的地方:

let alertController = UIAlertController(title: "title", message: "message", preferredStyle:UIAlertControllerStyle.alert)

        alertController.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default)
        { action -> Void in

            return

        })
        alertController.addAction(UIAlertAction(title: "Remove", style: UIAlertActionStyle.destructive)
        { action -> Void in

            self.numberArray.remove(at: indexPath.row)
            self.autoAdjustToTableView()
            self.numberTableView.reloadData()

        })
        self.present(alertController, animated: true, completion: nil)

        }

在移除项目时需要做什么来改变其高度?

最佳答案

首先,您需要调用 reloadData 来更改 tableView 中的单元格。您需要调用 autoAdjustToTable View 来更改高度。

        self.numberArray.remove(at: indexPath.row)

        self.numberTableView.reloadData()
        self.autoAdjustToTableView()

关于ios - 当其中一项被删除时如何调整TableView高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41095461/

相关文章:

swift - 表达式类型 UIImage 在没有更多上下文的情况下不明确

ios - UItableViewCell 大小不合适

iphone - UITableView 作为 NIB 中的 subview 的问题

ios - gRPC 中的 TLS 证书固定

ios - 如何检查 UITableView 何时完成滚动

ios - 快速检查 NSData 是否存在

ios - 我如何在核心数据中保存图像然后检索它?使用 swift

c# - 弄清楚如何摆脱 UITableView 单元格中单元格周围的边框

ios - App Store 连接操作错误 : Invalid entitlement for core nfc framework

ios - 使用 Swift 将方向设置为纵向