gpt4 book ai didi

Swift - 从另一个 UITableViewCell 访问 UITableViewCell

转载 作者:行者123 更新时间:2023-11-30 10:03:18 26 4
gpt4 key购买 nike

我在使用 Swift 时遇到了一些挑战。

我有一个带有原型(prototype)单元的 UITableView。有3个单元格前两个包含用户填写的文本字段。第三个包含一个提交按钮。

非常简单!

我的问题是,仅当两个文本字段都包含文本时才需要启用“提交”按钮。

如果页面不是使用 TableView 构建的,但它是这样构建的,并且需求现在正在发生变化,这会很容易,这会导致我的问题。这是一个安全问题/响应页面,因此由于前两个单元格的布局相同,因此 TableView 方法是有意义的。

我的问题是我不知道如何在其他单元格操作期间访问第三个单元格按钮。

基本上,我在 Textfield 单元格中的 TextDidChange 上有一个委托(delegate),但我无法访问最后一个单元格中的按钮来启用它。

我可以轻松拥有一个原型(prototype)或委托(delegate),将值或操作传播到 ParentViewController,但这对我没有帮助,因为我需要访问第三个单元格中的按钮。

这里最好的方法是什么?

感谢您的帮助!

最佳答案

有很多方法可以做到这一点,我将举一个例子:

想法:基本上,您需要模型来维护单元格的状态(在本例中为文本字段/按钮布局),然后每次更新文本字段时,您可以检查它是否为空并更新按钮单元格的模型以反射(reflect)这一点(您可以在每次更新文本字段时调用 reloadRowsAtIndexPaths(在我假设是最后一个单元格的情况下),在示例中检查哪个单元格被编辑,我使用 tag 属性。这适用于任何长度的问题)。

这里我根据模型的属性启用了按钮。但是您也可以使用按钮单元格(但您还需要更新模型,因为如果 View 上发生刷新,您将在单元格重用时失去对启用/禁用操作的控制):

if let cellButton = self.tblSample.cellForRowAtIndexPath(NSIndexPath(forRow: sampleData.count - 1, inSection: 0)) as? ButtonCellClass{

}

示例: https://github.com/Abreu0101/TableViewButtonDisable

关于Swift - 从另一个 UITableViewCell 访问 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37309806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com