首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何更新可重用tableView单元格中UITextfield中的文本值,每个单元格中的值不同

要更新可重用tableView单元格中UITextfield中的文本值,需要遵循以下步骤:

  1. 在UITableViewDataSource的cellForRowAt方法中,为每个单元格创建或获取一个UITableViewCell,并为其设置唯一的标识符。
  2. 在UITableViewCell的子类中,为每个单元格添加一个UITextField,并设置其代理为当前的UITableViewCell子类。
  3. 在UITableViewCell子类中,实现UITextFieldDelegate的textFieldDidEndEditing方法,该方法在用户结束编辑文本字段时被调用。
  4. textFieldDidEndEditing方法中,获取UITextField的文本值,并将其存储在数据源中的适当位置。
  5. 在UITableViewDelegate的willDisplay方法中,为每个可见的单元格设置UITextField的文本值。这样可以确保在滚动时,每个单元格都会正确显示其文本值。

下面是一个示例代码:

代码语言:txt
复制
class CustomTableViewCell: UITableViewCell, UITextFieldDelegate {
    var textField: UITextField!
    
    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
        textField = UITextField(frame: CGRect(x: 10, y: 5, width: 200, height: 30))
        textField.delegate = self
        contentView.addSubview(textField)
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func textFieldDidEndEditing(_ textField: UITextField) {
        // 将文本值存储在数据源中的适当位置
    }
}

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    var tableView: UITableView!
    var data: [String] = []
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableView = UITableView(frame: view.bounds, style: .plain)
        tableView.dataSource = self
        tableView.delegate = self
        tableView.register(CustomTableViewCell.self, forCellReuseIdentifier: "CustomCell")
        view.addSubview(tableView)
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomTableViewCell
        
        // 设置UITextField的文本值为数据源中的适当位置的值
        
        return cell
    }
    
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        let customCell = cell as! CustomTableViewCell
        
        // 设置UITextField的文本值为数据源中的适当位置的值
    }
}

这样,每个单元格中的UITextField的文本值将根据数据源中的适当位置进行更新。请注意,这只是一个示例代码,你需要根据自己的需求进行适当的修改和调整。

推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

问与答95:如何根据当前单元格高亮显示相应单元格

excelperfect Q:这个问题很奇怪,需要根据在工作表Sheet1输入数值高亮显示工作表Sheet2相应单元格。...具体如下: 在一个工作簿中有两个工作表Sheet1和Sheet2,要求在工作表Sheet1列A单元格输入一个后,在工作表Sheet2从列B开始相应单元格会基于这个高亮显示相应单元格。...例如,在工作表Sheet1单元格A2输入2后,工作表Sheet2单元格B2开始两列单元格将高亮显示,即单元格B2和C2高亮显示;在工作表Sheet1单元格A3输入3,工作表Sheet2...从B3开始三列单元格将高亮显示,即单元格B3、C3和D3加亮显示,等等。...图1:在工作表Sheet1输入数值 ? 图2:在工作表Sheet2结果 A:可以使用工作表模块事件来实现。

3.9K20

VBA程序:对加粗单元格求和

标签:VBA 下面的VBA自定义函数演示了如何对应用了粗体格式单元格求和。...ErrHandler: '检查是否溢出 If Err.Number = 6 Then SumBold = CVErr(xlErrNum) Resume Continue End Function 注意,当求和单元格区域中单元格格式发生更改时...,不会触发任何事件;而使用Application.Volatile语句,每当在工作表上内容更改时,单元格都会重新计算。...这意味着,仅对求和单元格区域中单元格设置加粗格式,使用该自定义函数求和不会改变,除非按F9键强制计算,或者在工作表输入内容导致工作表重新计算。...这个程序也提供了一个模板,可以稍作修改对其它格式设置单元格来求和

17010
  • 问与答98:如何根据单元格动态隐藏指定行?

    excelperfect Q:我有一个工作表,在单元格B1输入有数值,我想根据这个数值动态隐藏行2至行100。...具体地说,就是在工作表中放置一个命令按钮,如果单元格B1数值是10时,当我单击这个命令按钮时,会显示前10行,即第2行至第11行;再次单击该按钮后,隐藏全部行,即第2行至第100行;再单击该按钮,...则又会显示第2行至第11行,又单击该按钮,隐藏第2行至第100行……也就是说,通过单击该按钮,重复显示第2行至第11行与隐藏第2行至第100行操作。...图1 如何实现? 注:这是在chandoo.org论坛上看到一个贴子,有点意思。...A:使用VBA代码如下: Public b As Boolean Sub HideUnhide() If b =False Then Rows("2:100").Hidden

    6.3K10

    解决UITableViewCell重用机制导致内容出错方法总结

    UITableViewcell可以有很多,一般会通过重用cell来达到节省内存:通过为每个cell指定一个重用标识符(reuseIdentifier),即指定了单元格种类,当cell滚出屏幕时...,会将滚出屏幕单元格放入 重用queue,当某个未在屏幕上单元格要显示时候,就从这个queue取出单元格进行重用。...比如,当一个cell含有一个 UITextField子类并被放在重用queue以待重用,这时如果一个未包含任何子视图cell要显示在屏幕上,就会取出并使用这个重用 cell显示在无任何子视图cell...这个方法,方法意思就是“出列重用cell”,因而只要将它换为cellForRowAtIndexPath(只从要更新cell那一行取出 cell),就可以不使用重用机制,因而问题就可以得到解决...重用机制是根据相同标识符来重用cell,标识符不同cell不能彼此重用。于是我们将每个cell标识符都设置为不同,就可以避免不同cell重用问题了。

    2.4K50

    Excel VBA解读(140): 从调用单元格获取先前计算

    学习Excel技术,关注微信公众号: excelperfect 如果有一个依赖于一些计算慢资源用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用单元格中最后一次计算得到,并且只偶尔使用计算慢资源...GetSlowResource(vParam) End If End Function Application.Caller.Text 如果使用Application.Caller.Text,则不会获得循环引用,但会检索单元格显示为字符串格式化...因此,如果单元格被格式化为带有2个小数位数字,则检索到将被截断为2个小数位。...Application.Caller.ID 可以使用Range.ID属性在用户定义函数存储和检索字符串。...小结 有几种方法可以从VBA用户定义函数最后一次计算获取先前,但最好解决方案需要使用C++ XLL。

    6.8K20

    如何找出单向链表每个节点之后下个较大?

    如何找出单向链表每个节点之后下个较大,如果不存在则返回0?...要找到是一个元素之后下个较大,这里关键词是[下个较大]是其后第一个大于当前元素.如例子,第二个元素4(list[1])对应下个较大应为5,而不是8. 2....第4次遍历时,发现较大8是在后续遍历可能再次用到,已经记录较大5已经不会再用了,需删除掉.较大需记录只有8. 3....第7次遍历时,元素4较大为5,存在于较大列表内,而且本身同样需要记录到较大列表. 5....第8次遍历时,元素较大是8;需要记录到较大列表;同时,已经记录较大列表4和5也不会被再次使用,删除掉.

    1.1K10

    史上最全iOS之访问自定义celltextField.textN种方法

    前言 问题背景:自定义cell中有一个UITextField类型子控件。我们经常要在tableView拿到某个cell内textField文本内容进行一些操作。...cellWithXib.png 四个方法告诉你如何tableView拿到每一个celltextField.text 四个方法分别如下: 通过控制器textField属性来拿到每一个cell内...2.在cellForRowAtIndexPath:数据源方法给控制器每个UITextField类型属性赋值为cell.textField。...* cell文本框 */ @property (weak, nonatomic) IBOutlet UITextField *contentTextField; @end 控制器声明UITextField...赋值给 事先声明好UITextField类型属性 // 以后直接操作控制器这些属性就可以拿到每个textField switch (indexPath.row) {

    6.8K40

    温故而知新:WinFormSilverlight多线程编程如何更新UI控件

    单线程winfom程序,设置一个控件是很easy事情,直接 this.TextBox1.value = "Hello World!"...;就搞定了,但是如果在一个新线程这么做,比如: private void btnSet_Click(object sender, EventArgs e) {         Thread t = new...究其原因,winformUI控件不是线程安全,如果可以随意在任何线程改变其,你创建一个线程,我创建一个线程,大家都来抢着更改"TextBox1",没有任何秩序的话,天下大乱......,允许各路线程随便乱搞,当然最终TextBox1到底是啥难以预料,只有天知道,不过这也是最省力办法 2.利用委托调用--最常见办法(仅WinForm有效) using System; using...(Winform/Silverlight通用) BackgroundWorker会在主线程之外,另开一个后台线程,我们可以把一些处理放在后台线程处理,完成之后,后台线程会把结果传递给主线程,同时结束自己

    1.8K50

    WPF备忘录(3)如何从 Datagrid 获得单元格内容与 使用转换器进行绑定数据转换IValueConverter

    一、如何从 Datagrid 获得单元格内容    DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它 items. ...但是,WPFDataGrid 不同于Windows Forms DataGridView。 ...在DataGridItems集合,DataGridRow 是一个Item,但是,它里面的单元格却是被封装在 DataGridCellsPresenter 容器;因此,我们不能使用 像DataGridView.Rows.Cells...这样语句去获得单元格内容。...比如我项目名字为自动更新,用local作为空间名称前缀 xmlns:local="clr-namespace:命名空间" 为了使用更方便,我们在Resources集合创建一个转换器对象 <Window.Resources

    5.5K70

    自学Swift之路(二)UITableView自定义和实际利用

    6EDD4AC9-47E3-401F-91A4-2DA836439787.png Demo开始之前,我们想想应该会使用到屏幕宽高等一些常用,在OC,咱们可以使用PCH然后宏定义,然而在Swift...self.presentViewController(buildListNVC, animated: true, completion: nil) } } 在登录后我们会进入一个表视图,这个表视图单元格是咱们自己定义...coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } 代码自定义单元格加上了一个...ImageView和一个Label,虽然数据是死,但是在Swift,另外一个类是可以直接访问另一个类变量(如果没做任何保护的话),所以我们在配置cell时候是可以直接赋值,这里就不弄了,然后我们看创建表视图那一块...} } 创建单元格时候直接使用我们自定义BuildListTableViewCell创建就行了 好了,这篇文章也完了,这只是一个非常简单demo,大家平时工作要做肯定不止这么点,哈哈哈

    2.3K90

    iOS面试题梳理(三)

    对于单元格重用理解 当屏幕上滑出屏幕时,系统会把这个单元格添加到重用队列,等待被重用,当有新单元从屏幕外滑入屏幕内时,从重用队列找看有没有可以重用单元格,若有,就直接用,没有就重新创建一个。...解决cell重用问题 UITableView通过重用单元格来达到节省内存目的,通过为每个单元格指定一个重用标示(reuseidentifier),即指定了单元格种类,以及当单元格滚出屏幕时,允许恢复单元格以便复用...对于不同种类单元格使用不同ID,对于简单表格,一个标示符就够了。...如一个TableView中有10个单元格,但屏幕最多显示4个,实际上iPhone只为其分配4个单元格内存,没有分配10个,当滚动单元格时,屏幕内显示单元格重复使用这4个内存。...如何使用两个TableView产生联动:将两个tableView滚动事件禁止掉,最外层scrollView滚动时将两个TableView跟着滚动,并且更改contentOffset,这样产生效果滚动两个

    1.4K71

    C++ Qt开发:StandardItemModel数据模型组件

    model数据集进行绑定,当绑定后,模型数据发生变化则会自动刷新到View组件,我们就无需关心界面组件如何显示了,这个现实过程交给Model映射吧。...随即启用工具栏其他Action选项,包括保存、查看、追加、删除和插入。并在状态栏显示当前打开文件路径。 该函数实现了打开文件后一系列操作,包括读取文件内容、更新UI显示和初始化数据模型。...Item } } 读者自行运行程序,当程序运行后默认只能点击打开按钮,点击打开按钮后可以选择项目中data.txt文本文件,此时就可以将文本内容映射到组件,其输出效果如下图所示; 1.3...这个函数主要用于模拟在 TableView 追加一行数据,其中包括普通文本和可选框数据。...,当然如果需要保存这些状态,则还需要单独存储表格状态,在运行程序后依次设置即可; 附件下载 StandardItemModel.zip

    36510

    教你写个多表视图

    把当前控制器作为一个父控制器,添加三个UITableViewController实例作为子控制器,把父控制器 scrollView 作为容器,然后添加子控制器 tableView 作为子视图...解决办法是可以自己写个重用机制,不过这显然没必要,用自带重用机制UICollectionView应该是个更好选择。...然后要用 layout 控制布局,用最常用 UICollectionViewFlowLayout 就行了,设置单元格宽高,既然是翻页,宽肯定是跟屏幕等宽,高度就看你需求了,但是不要超过 collectionView...因为这边只是个 Demo,所以我直接在 cell 显示cellData,那cellData 在哪里设置呢?...这边 cell 是会被复用,在翻到第三页时,会复用第一页 cell ,第四页复用第二页 cell……依此类推,所以需要给 cell tableView调用 reloadData方法,不然就算改变了表数据

    1.3K30

    Travis CI 教程:入门

    好吧,.travis.yml 文件使用 YAML 告诉 Travis 如何设置构建。由于 Travis 使用多种不同语言,因此如果没有关于它是什么类型项目的信息,它就不知道如何构建您特定项目。...由于 Xcode 知道如何分辨 Swift 内容以及 Objective-C 内容,因此您 Swift 项目会很好。...由于单元格重用,因此在重新使用单元格之前清除这些变量,方法是重写 prepareForReuse() 并将每个重置为 nil: public override func prepareForReuse...如果您考虑 TaskTableViewCell 通常如何创建 - 通过从故事板加载视图控制器管理单元重用队列 - 这种崩溃是有意义单元格没有从故事板加载,所以 IBOutlets 不要搞定。...} 现在更新您现有的测试代码以使用您刚刚生成单元格

    5.1K21
    领券