UITableView 中的 UITextFields,输入的值重新出现在其他单元格中

2023-11-23

我有一个大约有 20 个单元格的 UITableView,每个单元格中有三个 UITextField。我没有子类化 UITableViewCell,但在设置每个单元格时,我将文本字段标记值设置为常量加上行号。因此,对于每一行,文本字段的标签都会增加一。

当我运行应用程序并在第一行中输入一个值时,它可能会重新出现在第 12 行。每次运行应用程序时,行为都不相同。

我应该补充一点,我有一个数组存储每个文本字段中输入的内容。编辑文本字段时,我将新值保存到数组中,当表视图再次请求单元格时,我将文本字段值设置为存储在数组中的值。

这与重用 UITableViewCells 有关系吗? 重复使用单元格时,不同行中的文本字段可以获得相同的标签号吗?例如,第 12 行重复使用第一个单元格(文本字段标记 = 1001),那么我们有两个具有相同标记号的文本字段。如果我在第 1 行输入一个值,然后加载第 12 行,则单元格 1 中的值将从数组中加载并放入第 12 行。

如果发生这种情况,我该如何解决? 每个单元格都没有对文本字段的引用,因此我认为我无法通过访问文本字段所在的单元格来编辑文本字段的标签值。

EDIT:

这是 UITableView:cellForRowAtIndexPath 的代码:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
            //Modify cell, adding textfield with row-unique index value
            cell = [self modifyCellForHoleInfo:cell atIndexPath:indexPath];

    }
    cell.accessoryType = UITableViewCellAccessoryNone; 

    // Load value for textfield stored in dataArray
    ((UITextField *)[cell viewWithTag:1000+indexPath.row]).text = [dataArray objectAtIndex:indexPath.row];

Thanks!


问题是当电池被重复使用时(即dequeueReusableCellWithIdentifier返回非零),单元格与现有的一起返回UITextView。为了保持标签的唯一性,最好删除任何以前的标签UITextField:

- (void)removeExistingTextSubviews:(UITableViewCell *)cell
{
    NSMutableArray *toRemove = [NSMutableArray array];
    // I don't know if you have non-TextField subviews
    for (id view in [cell subviews]) {
        if ([view isKindOfClass:[UITextField class]] && view.tag >= 1000) {
           [toRemove insert:view];
        }
    }

    for (id view in toRemove) {
        [toRemove removeFromSuperView];
    }
}

...

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
} else {
    [self removeExistingTextSubviews:cell];
}
//Modify cell, adding textfield with row-unique index value
cell = [self modifyCellForHoleInfo:cell atIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryNone; 

// Load value for textfield stored in dataArray
((UITextField *)[cell viewWithTag:1000+indexPath.row]).text = [dataArray objectAtIndex:indexPath.row];

请注意,我尚未编译代码,但它应该作为一个起点。

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

UITableView 中的 UITextFields,输入的值重新出现在其他单元格中 的相关文章

  • 私人 iPhone 应用程序?

    我有兴趣编写连接到内部网或外部网的应用程序 换句话说 我想为我的客户制作私人应用程序 但我不希望每个人都能够访问它并能够下载它 您知道是否有一种方法可以将企业应用程序仅分发给特定的人 Android 也做同样的事情吗 The iPhone
  • 如何适配iPhone 4屏幕分辨率?

    根据Apple http www apple com iphone specs html iPhone 4 拥有新的 更好的屏幕分辨率 3 5 英寸 对角线 宽屏多点触控显示屏960 x 640 像素分辨率 326 ppi 这个小细节对我们
  • iPhone 崩溃日志?

    我已经配置了一部 iPhone 并让用户安装了该应用程序 它失败 是否有崩溃日志可以让我看到 iPhone 上失败的原因 Ian 如果您可以使用 xcode 将 iPhone 连接到计算机 则在管理器窗口中它会显示每个应用程序崩溃的崩溃日志
  • NSURL URLWithString:引发异常

    简而言之 NSURL URLWithString 似乎引发了一个例外 根据文档 如果字符串格式错误 则返回 nil 没有提到在任何情况下都会引发异常 除此之外 我还对 URL 进行编码并检查nil在将字符串转换为 URL 之前 任何人都可以
  • 图像目录中矢量 pdf 的渲染模式设置为模板,但 UIImageView 不会在自定义单元格中对图像进行着色

    我已将所有图像文件迁移到资产目录中 它们都是大小为 1x 的 pdf 向量 它们被设置为呈现为模板 它们的大小和颜色在任何地方都表现得很好 但是有一个来自 xib 的自定义 TableView Cell 我有 6 个 UIImageView
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • iOS 10 的错误? NSDate 日本地区时间描述和 24 小时休息

    这似乎是 iOS 10 的一个错误 在 iOS 8 和 9 中都可以 NSDate date description 的小时描述是错误的 它附加了 24 小时描述和 12 小时描述 我没有使用 NSDateFormatter 只是默认设置
  • 用 UIView 像翻书一样翻页?

    我正在尝试在之间切换UIViews让它看起来就像你正在翻书的一页 The UIViewAnimationTransitionCurlUp如果我能让它向左或向右卷曲 那就非常接近了 这可能吗 我尝试过使用CATRansition但没有一种动画
  • 如何在 iOS 中注册自定义文件类型

    我目前正在创建一个应用程序 我想让用户在其中备份他们的文件 plist m4a 我压缩文件并将扩展名更改为自定义扩展名 专门针对我的应用程序 例如 MyBackup 然后 用户可以通过电子邮件或 iTunes 文件共享进行导出 我已经阅读过
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 这个错误是无效上下文0x0吗?

    我在ViewDidLoad中编写了以下代码 Implement viewDidLoad to do additional setup after loading the view typically from a nib void view
  • 如何将 NSIndexpath 转换为 NSInteger 或简单的 int?

    我需要将 nsindexpath var 转换为 NsInteger 或简单的 int 例如 int rowIndex mGoogleBaseTable selectedRow mGoogleBaseTable is a NSTable t
  • Objective Flickr 照片上传错误

    我正在使用 ObjectiveFlickr 库将照片从我的 iPhone 应用程序上传到 Flickr 我可以授权该应用程序并执行一般请求 但在尝试上传照片时遇到错误 要上传的照片是使用 AVFoundation 捕获的图像 这是相关代码
  • 确定 NSView 是否绘制的正确方法

    有没有正确的方法来确定是否NSView实际上是否在当前视图层次结构中绘制 考虑以下情况 视图完全在屏幕外 不是强制性的 该视图不在视图层次结构的顶部 The isHidden and isHiddenOrHasHiddenAncestor不
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 使用 Google place API 从 lat long 获取附近的地点

    我正在使用 google place API 即 https maps googleapis com maps api place search json location 33 7167 73 0667 radius 500 type f
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • Xcode 3.1.4 中内置分析器

    我想知道 Xcode 3 1 4 中内置的分析器是否使得单独使用 LLVM Clang 静态分析器变得多余 请参考这里的原文 使用 LLVM Clang 静态分析器查找内存泄漏 http www fruitstandsoftware com
  • 对于某些纹理尺寸,glFramebufferTexture2D 在 iPhone 上失败

    当我尝试将纹理附加到帧缓冲区时 glCheckFramebufferStatus 报告某些纹理大小的 GL FRAMEBUFFER UNSUPPORTED 我已经在第二代和第四代 iPod Touch 上进行了测试 两个模型之间失败的纹理尺
  • iPhone - 如何在矩形中间绘制文本

    有没有一种方法可以在矩形中间绘制文本 我可以找到各种对齐方式 但我尝试过的任何方法都不能将文本垂直居中在矩形中 有没有一种简单的方法可以做到这一点 或者有什么方法可以将矩形居中然后在其中绘制 我直接绘制到 CGContext 尝试使用 NS

随机推荐

  • 如何使用 C# 识别文件的扩展名/类型?

    我有一个工作流程 允许用户上传任何文件 然后将读取该文件 现在我的问题是 如果用户有图像文件 xyz jpg 并且他仅将其重命名为 xyz 删除扩展名 那么我们仍然可以使用 读取文件数据 元数据来获取文件的类型 扩展名 谢谢大家 See P
  • go regex 是否将任何字符匹配换行符

    Go s re2语法文档表示任意字符 匹配任何 字符 包括换行符 s true 不过我写了一个简单的程序 结果显示任何字符根本不匹配换行符 该程序 可以在这里找到 http play golang org p pccP52RvKS 像大多数
  • PDO:如何检查连接是否确实有效?

    曾经有过two 问题已经讨论过这个问题 但没有人真正回答这个问题 我知道如果连接失败 PDO 会抛出异常 假设您启用PDO ERRMODE EXCEPTION 但我想测试连接是否still活跃 可能是几个小时后 我有一个长时间运行的脚本 一
  • 如何通过Javascript解析多维JSON数据

    我如何解析这种类型的 json 数据 获取 结果 以获取邮政编码 州等单个值 row id 5 name test email email protected street mystreet city mycity state mystat
  • 使用 Excel VBA 更改已关闭工作簿中单元格的值?

    我目前在 VBA 中使用此函数来获取关闭的工作簿中单元格的值 我想使用类似的过程将单元格的值设置为我想要的任何值 而无需打开文件 那可能吗 Private Function GetValue path file sheet ref Dim
  • Log4j 2 JSON 配置

    我有一个 XML 配置 我想将其转换为 JSON Log4j 未加载 JSON 版本 并且我找不到任何拼写错误 我的测试代码只是记录一个ERROR水平和一个DEBUG级别消息 仅有的ERROR正在显示消息并且没有生成文件输出 我假设框架回退
  • Unity3D构建错误

    构建播放器时出错 Win32Exception ApplicationName E adt bundle windows x86 64 20131030 sdk tools zipalign exe CommandLine 4 C User
  • 移除锤子事件

    我使用hammer js 库创建一个事件 如下所示 Hammer myElement on doubletap function evt evt preventDefault 那么我怎样才能删除注册的事件呢 我也可以使用 Jquery 吗
  • SQL SUM GROUP BY 两个表

    我很难编写一个 SQL 查询来正确地将 account no 组合在一起并减去一个金额 首先 我编写了这个查询 它更新了所有内容 除了 ACCOUNT NO A 102 应该最终为 4500 而不是两个不同的正确余额 select tran
  • Android 11 使用相机拍摄图像

    文档 https developer android com training camera photobasics 我已按照使用相机捕获图像所需的所有步骤进行操作 private void dispatchTakePictureInten
  • Android 选项卡帮助。应用程序打开时如何将第二个选项卡设置为默认选项卡?

    我创建了一个带有 3 个选项卡的应用程序 该应用程序工作正常 但我希望在应用程序打开时选择并加载第二个选项卡 我该如何设置呢 这是我的代码 public void onCreate Bundle savedInstanceState sup
  • MySQL Workbench 不会连接到 AWS RDS 数据库。错误 - “无法连接到本地主机”[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 This image shows the error pop up when I try to test the connection 当前设置 2015 MacBook Pro 操
  • Grails 2.4.3 无法重新加载控制器或服务

    我已将 Grails 2 3 8 项目升级到 2 4 3 在 2 3 8 中 我们在分叉执行方面遇到了问题 所以我禁用了它 现在 当我启用它并尝试重新加载更改的服务或控制器类时 我收到如下错误 2014 09 25 19 50 37 043
  • 如何根据每个元素的长度对数组进行排序?

    我有一个像这样的数组 arr arr 0 ab arr 1 abcdefgh arr 2 abcd 排序后 输出数组应为 arr 0 abcdefgh arr 1 abcd arr 2 ab 我想要在descending每个元素的长度顺序
  • 使用 ajax 和 jQuery 根据 Flask 中第一个下拉列表中选择的值填充第二个下拉列表

    我在这方面没有任何进展 任何有关此问题的帮助将不胜感激 我有两个针对经理和员工的下拉菜单 默认情况下 经理下拉列表包含经理列表 我想通过使用用户在 经理 下拉列表中选择的经理名称查询 SQL Server 数据库 用员工姓名填充 员工 下拉
  • 十六进制到浮点转换

    我有一个 4 字节的十六进制数 08fdc941 它应该转换为浮点数 25 25 但我不知道如何 我用C 从十六进制转换为浮点数的正确方法是什么 From thisMSDN 页面 如何 在十六进制字符串和数字类型之间进行转换 C 编程指南
  • IE6 - 无法加载普通 JPG

    尝试加载这个普通的 jpg 文件在 Internet Explorer 6 0 中 我收到一条错误消息 指出图片无法加载 在任何其他浏览器中尝试一下 效果很好 怎么了 jpg 文件只是 Web 服务器上的一张普通图片 我什至可以创建一个简单
  • 如何在 UIImageView 底部应用曲线?

    我想在图像视图的底部遮罩并添加一些曲线 我尝试过下面的代码 extension UIImage var roundedImage UIImage let rect CGRect origin CGPoint x 0 y 0 size sel
  • 将条目添加到 HashMap 并在 for 循环中获取对它们的引用

    我正在尝试将多个元素添加到HashMap in a for循环但似乎无法正确执行 use std collections HashMap fn set if needed and get hmap mut HashMap
  • UITableView 中的 UITextFields,输入的值重新出现在其他单元格中

    我有一个大约有 20 个单元格的 UITableView 每个单元格中有三个 UITextField 我没有子类化 UITableViewCell 但在设置每个单元格时 我将文本字段标记值设置为常量加上行号 因此 对于每一行 文本字段的标签