如何在 IndexPath 处使用 reloadRows 更新行

2024-03-20

我正在尝试使用按钮删除单元格。

这是一个单元格的实现。

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.frame = CGRectMake(0.f, 0.f, 30.f, 30.f);
        [btn addTarget:self 
                action:@selector(btnTouched:)
      forControlEvents:UIControlEventTouchUpInside];
      [cell addSubview:btn];
      cell.tag = indexPath.row;
    }
   return cell;
}

- (void)btnTouched:(UIButton *)sender
{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:sender.tag inSection:0];

    [_myMutableArray removeObjectAtIndex:sender.tag];
    [_tableView beginUpdates];
    [_tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                      withRowAnimation:UITableViewRowAnimationLeft];
    [_tableView endUpdates];
}

在我删除一行之前,这种方法效果很好,按钮不会重新加载,因此删除后,我不会删除好的索引。我试着把reloadRowsAtIndexPaths:withRowAnimation: for visible indexPath之后endUpdates方法并且效果非常好。但是删除动画由于 reloadRows 动画而变得丑陋(即使我将其设置为“否”)。 那么有没有一种方法可以在不重新加载单元格的情况下重新加载单元格索引路径。或者不使用标签删除行。


多谢。


您应该能够使用类似于以下的逻辑查找单元格的索引:

NSIndexPath *indexPath = [_tableView indexPathForCell:(UITableViewCell *)[sender superview]];

使用这种方法,您不需要将行索引的值存储在单元格标记中。

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

如何在 IndexPath 处使用 reloadRows 更新行 的相关文章

随机推荐

  • 基于Enum的Jackson多态反序列化

    我正在与Jackson 多态反序列化 https github com FasterXML jackson docs wiki JacksonPolymorphicDeserialization 这是我的代码 它反序列化为基于 type 属
  • 使用 JavaScript/onorientationchange 重置 iPhone 上 Safari 的比例/宽度/缩放

    我根据用户使用 body 标签中的 onorientationchange 调用握持手机的方式显示不同的内容 这非常有效 我隐藏一个 div 同时使另一个 div 可见 纵向模式下的 div 在首次加载时看起来很棒 我用它来获得正确的比例
  • 如何从文本中删除除文字和表情符号之外的所有内容?

    作为文本分类问题的一部分 我正在尝试清理文本数据集 到目前为止 我删除了除文本之外的所有内容 标点符号 数字 表情符号 一切都被删除了 现在我尝试使用表情符号作为特征 因此我想保留单词和表情符号 首先 我在文本中搜索表情符号 并将它们与其他
  • API Key 和 JWT Token 可以在同一个 .Net 6 WebAPI 中使用吗

    我正在构建一个新的 Net 6 WebAPI 它将被许多应用程序使用 因此我需要实现 API 密钥来限制仅对这些应用程序的访问 只有极少数个人用户需要授权 管理员 因此我想与 JWT 结合用于管理端点 我们不希望要求用户在不必要的情况下 非
  • mysql批量插入文本文件

    我有纯文本文件 我想将该文本文件的内容逐行移动到 mysql 表中 任何人都可以帮助我 因为它不是 csv 文件 我怎样才能实现这一目标 我设计我的数据库如下 RowID int 11 NO PRI auto increment Text
  • 如何获取 Symfony2 中控制器的所有路由列表?

    我有一个控制器 它实现了所有路线 URL 我的想法是为所有帮助页面提供通用索引 有没有办法获取控制器 从控制器内 定义的所有路由Symfony2 您可以做的是将 cmd 与 最高 SF2 6 一起使用 php app console rou
  • Python在3D散点图中用线连接相邻点

    我有两组 x y z 坐标 我用 Matplotlib 将它们绘制在 3D 散点图中 现在 我想将每个生成的四边形与平面连接起来 我已经了解了如何在 3D 空间中绘制 2D 多边形在 python matplotlib 中绘制 3D 多边形
  • NLog - 将 NULL 写入可选数据库列

    我在用NLog http nlog project org用于登录 ASP Net 应用程序并通过 Microsoft Sql Server 使用数据库目标 我有一些可选的日志记录参数 但并不总是指定 但是 我希望在未提供这些内容时将其写为
  • 在 SwiftUI macOS 的帮助菜单下添加应用程序帮助

    如果您打开任何应用程序 它的顶部都有菜单栏项目 最后一个是帮助 当我现在运行适用于 macOS 的 SwiftUI 应用程序并按菜单上的帮助 然后按 应用程序名称 帮助 时 它只是说 帮助不适用于 应用程序名称 我如何添加对此的支持 在找到
  • Admob 如何确定文本上下文来显示有针对性的广告?

    1 Admob SDK是否能够检索应用程序中显示的所有文本字符串并根据这些文本字符串显示有针对性的广告 2 我是否必须手动指定字符串AdRequest setKeywords keywords EDIT setKeywords被忽略 Sou
  • spring mvc 为所有控制器提供一个初始化绑定器

    我有 5 个控制器 我想注册一个InitBinder对他们所有人 我知道我可以将此代码添加到每个代码中 InitBinder public void initBinder WebDataBinder binder binder regist
  • Jquery:获取页面的所有html源但排除一些#ids

    我正在尝试使用 html 或 contents 但我有奇怪的行为 我基本上需要获取页面的整个 dom 排除一些元素 例如 first second 并将其作为字符串传递 不再是 dom 是否可以 您可以克隆它 删除要从克隆中排除的元素 然后
  • Jetpack compose 的公开下拉菜单

    我想知道是否有针对 jetpack compose 的暴露下拉菜单的解决方案 我在 jetpack compose 中找不到该组件的正确解决方案 有什么帮助吗 The M2 从版本开始1 1 0 alpha06 https develope
  • 我可以在 Django 中使用 HTTP 基本身份验证吗?

    我们有一个在 Apache 上运行的网站 访问该网站有许多通过 HTTP 基本身份验证保护的静态页面 我使用 Django 内置的用户管理支持 用 Django 编写了网站的新部分 我遇到的问题是用户必须通过 HTTP Basic 身份验证
  • 如何使用 cURL 和 PHP 来欺骗引荐来源网址?

    我正在尝试使用 PHP 学习 cURL 来欺骗网站的引荐来源网址 我希望通过以下脚本来完成此任务 但它似乎不起作用 有什么想法 建议我哪里出错了 或者你知道有什么教程可以帮助我解决这个问题吗 Thanks Jessica
  • junit 测试用例生成器

    有没有一个好的工具可以根据一些原始模板自动生成 jUnit 测试用例 这样一来 没有太多 Java 或 jUnit 背景的工程师就可以编写测试用例 作为背景信息 这是用于黑盒测试 如果除了使用 jUnit 之外还有其他替代方法来运行回归测试
  • 在 Jenkins 管道中执行 gcloud 命令

    我尝试在 Jenkins 声明性管道中运行 gcloud 命令 如下例所示 pipeline agent any stages stage Run gcloud version steps sh gcloud version 我下载了 GC
  • Eclipse“增强类反编译器”插件调试时不反编译

    问题描述 查看类 即 Ctrl Shift T 时反编译工作正常 但从调试角度单步执行代码时则不然 而是打开 类文件查看器 使用的版本 Eclipse Oxygen 和增强型类反编译器 3 0 0 这也适用于氧气和更高版本 单击 窗口 gt
  • 在 ExtJS 网格中编辑整行后触发“afteredit”?

    我有一个 ExtJS 编辑器网格 里面有一些列 我想修改记录上的数据并将数据自动保存到数据库 但我只需要在完成编辑当前行的所有单元格后保存数据 我使用了 afteredit 事件 但它在一个单元格更改后立即触发了该事件 在完成所有单元格的修
  • 如何在 IndexPath 处使用 reloadRows 更新行

    我正在尝试使用按钮删除单元格 这是一个单元格的实现 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath indexPath st