将单元格添加到 iOS 中 UITableView 的底部

2023-11-21

我正在使用带有情节提要的 xcode 4.2 来创建 iphone 应用程序。

当我按下右上角的编辑按钮时,我希望有选项来删除现有行并在顶部看到额外的单元格(带有绿色“+”图标),这将允许我添加新单元格。

我有一个正在填充的数组viewDidLoad使用 CoreData 的方法

我已启用设置按钮

self.navigationItem.rightBarButtonItem = self.editButtonItem;

并实现了该方法

- (void)tableView:(UITableView *)tableView commitEditingStyle:   
          (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:
                   (NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // removing a cell from my array and db here... 
    }   
    else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // adding a cell to my array and db here...
    }   
}

我意识到我需要在某个时候添加单元格,然后我可以对其进行编辑,但我不清楚在哪里,而且我无法在互联网上找到解释。


好的,基本思想是,当单击编辑按钮时,我们将在每行旁边显示删除控件,并使用添加控件添加一个新行,以便用户可以单击它来添加条目,对吗?首先,由于您已经设置了编辑按钮,让我们指示我们的表在编辑模式下应该显示额外的行。我们在我们的tableView:numberOfRowsInSection:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.editing ? a_recs.count + 1 : a_recs.count;
}

a_recs这是我设置的用于存储记录的数组,因此您必须使用自己的数组将其切换出来。接下来我们告诉我们tableView:cellForRowAtIndexPath:如何处理多余的行:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *CellIdentifier = @"Cell";
    BOOL b_addCell = (indexPath.row == a_recs.count);
    if (b_addCell) // set identifier for add row
        CellIdentifier = @"AddCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        if (!b_addCell) {
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        }
    }

    if (b_addCell)
        cell.textLabel.text = @"Add ...";
    else
        cell.textLabel.text = [a_recs objectAtIndex:indexPath.row];

    return cell;
}

我们还想指示我们的表,对于该添加行,我们需要添加图标:

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row == a_recs.count) 
        return UITableViewCellEditingStyleInsert;
    else
        return UITableViewCellEditingStyleDelete;
}

黄油。现在用筷子把它们粘在一起的超级秘密功夫酱:

-(void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [self.tableView setEditing:editing animated:animated];
    if(editing) {
        [self.tableView beginUpdates];
        [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:a_recs.count inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];
        [self.tableView endUpdates];        
    } else {
        [self.tableView beginUpdates];
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:a_recs.count inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];
        [self.tableView endUpdates];
        // place here anything else to do when the done button is clicked

    }
}

祝你好运,胃口好!

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

将单元格添加到 iOS 中 UITableView 的底部 的相关文章

  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • iOS 确定视频中的帧数

    如果我有一个 Swift 中的 MPMoviePlayerController MPMoviePlayerController mp MPMoviePlayerController contentURL url 有没有办法获取视频中的帧数u
  • 与 parse-server 和 auth0 的自定义身份验证集成

    我想将 auth0 com 与开源解析服务器结合使用 我当前的方法是通过 iOS 的 Lock 库使用标准登录从 auth0 获取令牌 使用该令牌 我想在解析服务器上调用自定义身份验证方法 该方法检查令牌是否有效 如果有效则将登录用户 我的
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • 在 Xcode 中查找未使用的文件

    我最近开始开发一个新应用程序 它基本上是我以前制作的应用程序的副本 但做了一些更改 为了制作这个新应用程序 我复制了旧应用程序并删除了一些不需要的内容 我想知道 有没有办法知道 Xcode 中正在使用哪些类文件 或者有什么关于如何查找未使用
  • 在 Swift 中的 For 循环中更改对象的属性

    我创建了一个名为 ShoppingList 的简单结构 struct ShoppingList var shoppingListId NSNumber var title String var groceryItems GroceryIte
  • UIAlertView 每次调用都会弹出三次,而不是一次

    我在程序的两个不同部分中从 NSAlert 中得到了奇怪的行为 行为是 出现警报 然后自发地消失 警报重新出现 然后一直保留 直到用户解除 即正常行为 警报再次出现 此行为仅在第一次调用显示警报的方法时发生 第一次之后 它的行为就正常了 以
  • 从字典创建 Swift 对象

    如何根据 Swift 字典中的查找值动态实例化类型 希望这对其他人有用 我们需要进行一些研究才能弄清楚这一点 目标是避免巨大的 if 或 switch 语句从值创建每个对象类型的反模式 class NamedItem CustomStrin
  • 依赖于不同队列上的另一个操作的 NSOperation 无法启动

    我有操作的依赖图 并且使用多个队列来组织各种操作流 例如 peopleQueue sitesQueue sessionQueue sessionQueue loginOp fetchUpdatedAccountOp peopleQueue
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • 如何订阅设备方向(非界面方向)事件?

    在我的应用程序中 我想在设备旋转 方向更改 的情况下调用 CCScene myscene 中的某些方法 我禁用了自动旋转 因为我希望它不会发生 问题是 我想根据我的设备方向改变场景中的重力 我的代码 void onEnter super o
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • iOS 有 INTERNET 权限吗?

    我在 iOS 设备上的 flutter dio 包上遇到了一个奇怪的问题 我编写了一个向 url 发送 GET 请求的应用程序 Android 上一切正常 但 iOS 上的请求似乎无法通过 没有发生任何错误 什么也没有 我在 Android
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 如何检测 UITableView 中某个单元格的双击?

    如何检测某个单元格上的双击UITableView i e 如果用户进行了一次触摸 我想执行一个操作 如果用户进行了两次触摸 我想执行另一个操作 我还需要知道进行触摸的索引路径 我怎样才能实现这个目标 Thanks 如果您不想创建子类UITa
  • iOS 搜索栏不显示结果

    更新 这实际上有效 我的自定义单元格的样式尚未出现 因此单元格看起来是空白的 那我怎样才能得到searchResultsTableView使用我的自定义单元格 我在表格视图中实现了搜索栏 当我调试时搜索 过滤所有工作 但是当我在搜索栏中输入
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • iOS 目标 c 中的 AES/CBC/PKCS5Padding 结果与 Android 不同

    我在 Android 应用程序中使用 AES CBC PKCS5Padding 代码就像 private static String TRANSFORMATION AES CBC PKCS5Padding private static St

随机推荐

  • 如何减少魔杖内存使用?

    我正在使用 wand 和 pytesseract 将 pdf 文本上传到 django 网站 如下所示 image pdf Image blob read pdf file resolution 300 image png image pd
  • 如何从 Subversion 中删除敏感信息?

    我的代码的以前版本之一 存储在 Subversion 存储库中 有敏感信息 如何在保留所有其他版本的情况下删除它 EDIT 存储库是 Google Code Project Hosting 所以我无法转储和恢复存储库 你想要的是一个通常被称
  • 在 PyCharm 调试器控制台中设置启动脚本

    在 PyCharm 中 可以设置在打开新控制台时运行的脚本 通过设置 gt 构建 执行 部署 gt 控制台 gt Python 控制台 gt 启动脚本 有没有办法将启动脚本类似地应用到调试器控制台 我发现每次运行代码时我都会一遍又一遍地导入
  • MongoDB ReplicaSet - 当仅剩下 PRIMARY 时,PRIMARY 角色将降至 SECONDARY

    我正在研究使用 MongoDB ReplicaSet 来实现高可用性 但刚刚发现 在有3个节点的ReplicaSet中 如果PRIMARY mongod是唯一剩下的 即另外2个 mongod实例死亡或被关闭 然后几秒钟后 它将角色切换到 S
  • 如何在不使用 join 的情况下向 python 中的主线程发送信号?

    我试图在多线程程序中从子线程向主线程发送信号 不能使用多进程 不幸的是 即使在用尽了所有在线阅读材料 我可以找到 之后 我仍无法清楚地知道如何做到这一点 我是信号和Python的初学者 所以请耐心听我解释 就像向新手解释一样 我无法在进程中
  • 在discreteBarChart nvd3.js 中使用数据自定义工具提示的工具提示内容

    如何使用加载到离散BarChart nvd3 js中 数据 中的数据来自定义工具提示的tooltip内容 例如 使用以下数据Jason 我想在工具提示中看到data3 data4 Data5 JsonData key Serie1 valu
  • 我如何知道我在 github Action 中运行工作流程的总时间?

    每次我创建 PR 或提交时 都会运行一些工作流程 但由于我有一个私人存储库 并且每月在 Github Actions 上运行工作流程的时间只有 2000 分钟 所以我想跟踪所用的时间 我如何知道在 Github 提供的 2000 分钟免费时
  • 如何保持网格单元的高度和宽度相同

    我需要保留Grid调整大小时单元格高度 宽度 使用 viewBox 的工作代码
  • 仅使用以太网帧的 Windows 网络

    我正在做一个项目 我必须为连接到 Windows 机器的设备编写网络库 复杂之处在于我只能使用以太网帧与设备进行通信 所以根本不存在TCP UDP IP 我不认为绑定 监听 接受方法可以应用在这里 但也许我错了 此外 不涉及路由或交换 我有
  • 中断到我的应用程序的链接

    我有个问题 我使用下面的代码来中断我的应用程序的链接
  • Azure COM 对象

    我正在尝试将我在带有 IIS 的服务器上托管的网站移至 Azure 网站 我正在使用 COM 对象 但我不确定是否可以注册它 我发现一些帖子谈论上传 dll 并在启动时注册它 但该文章似乎丢失了 这可能吗 我在 Azure 上注册旧版 CO
  • Android 如何等待代码完成后再继续

    我有一个方法叫做hostPhoto 它基本上将图像上传到网站并检索链接 然后我有另一种方法来发布网站链接 现在我使用这种方法的方式是这样的 String link hostPhoto returns a link in string for
  • .NET Core将本地API表单数据发布请求转发到远程API

    我有一个 AJAX 表单 它将表单数据发布到本地 API url api document 它包含一个文件和一个自定义 ID 我们只想获取准确收到的请求并将其转发到远程 API example com 8000 document uploa
  • Tastypie - 未找到嵌套资源字段

    我有这个代码 api model class VideoResource ModelResource class Meta queryset Video objects all include resource uri False reso
  • 使用 pgx 在 GO 中的 Postgres 中批量插入

    我正在尝试在 go 中的 db 中批量插入键 这是代码关键结构 type tempKey struct keyVal string lastKey int 测试键 data tempKey keyVal abc lastKey 10 key
  • 将集合转换为数组的最简单方法?

    假设我们有一个Collection
  • 使用 xpath 在 Java 中解析带有命名空间的 XML

    我正在尝试用 java 解析 SOAP 请求 但代码没有返回任何节点 这是代码任何人都可以发现错误 String xml
  • 字符串操作与正则表达式

    我们经常被告知正则表达式很慢 应该尽可能避免 然而 考虑到自己进行一些字符串操作的开销 不是谈论算法错误 这是另一回事 特别是在PHP or Perl maybe Java 是什么limit 在什么情况下我们可以考虑字符串操作是更好的选择
  • ASP.Net MVC 5 子目录捆绑问题

    我在 ASP Net MVC 5 项目中看到捆绑的奇怪行为 当我明确声明 BundleConfig cs 文件中的所有文件时 我的项目工作得很好 如下所示 bundles Add new ScriptBundle bundles app I
  • 将单元格添加到 iOS 中 UITableView 的底部

    我正在使用带有情节提要的 xcode 4 2 来创建 iphone 应用程序 当我按下右上角的编辑按钮时 我希望有选项来删除现有行并在顶部看到额外的单元格 带有绿色 图标 这将允许我添加新单元格 我有一个正在填充的数组viewDidLoad