RowAnimation 对于不同高度的单元格看起来很奇怪

2023-12-24

我在 UITableView 上动画删除和插入时遇到问题。事实是,我现在有不同的单元格高度,有些是 44.0,有些是 135.0。我有 uitableviewstyle 与不同的部分分组。每个部分的第一行是分组行。单击后,我将删除该部分中除分组行之外的所有行。但是当对 135px 高度的单元格进行动画处理 (UITableViewRowAnimationTop) 时,该动画看起来很奇怪。我尝试将 self.tableview.cellheight 设置为 135 并注释掉 tableView:cellHeightForIndexPath-Method 。而且动画效果很好。或者我在 tableView:cellHeightForIndexPath-Method 中将每个单元格高度设置为 135。

看起来动画过程会检查各部分中第一行的高度,并采用该单元格的高度来为所有后续单元格设置动画。

有人有主意吗?


- (void) showhideGroup:(int)group
{   
    NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
    
    MCGroup *handleGroup = [groups objectAtIndex:group];
    NSMutableArray *groupRows = [visibleGroupData objectForKey:handleGroup.title];
    
    [self.tableView beginUpdates];
    
    if (!handleGroup.hidden) {
        int row = 0;
        for(MobileFieldMapping *field in groupRows)
        {
            if (![field.datatype matchesInsensitive:GROUPING_CELL]) 
            {
                NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:group];
                [indexPaths addObject:path];
            }
            row++;
        }
        
        row = 0;
        for(NSIndexPath *index in indexPaths)
        {
            [groupRows removeObjectAtIndex:index.row-row];
            row++;
        }
        [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
        handleGroup.hidden=YES;
    }
    else 
    {
        NSMutableArray *allGroupRows = [groupData objectForKey:handleGroup.title];
        
        int row = 0;
        for (MobileFieldMapping *field in allGroupRows) 
        {
            if (![groupRows containsObject:field]) 
            {
                NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:group];
                [indexPaths addObject:path];
                [groupRows insertObject:field atIndex:row];
            }
            row++;
        }
        
        [self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
        handleGroup.hidden=NO;
    }
    [self.tableView endUpdates];


    [indexPaths release];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{   
    UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
    
    if ([cell isKindOfClass:[FormCell class]]) 
    {
        return [(FormCell*)cell height];
    }
    
    return 44.0;
}

我有同样的问题。 我的解决方法是使用淡入淡出部分动画:

[tableView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationFade];

而不是元素的一个:

[tableView deleteRowsAtIndexPaths:tmpArray withRowAnimation:UITableViewRowAnimationTop];

这看起来平滑得多。

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

RowAnimation 对于不同高度的单元格看起来很奇怪 的相关文章

  • 苹果推送通知在生产中不起作用

    我们完全陷入困境 请帮忙 我和我的团队制作了一个 iPhone 应用程序 这是我们第一次在 iOS 上尝试 一切都很好 直到我们提交应用程序并在应用程序商店上可用为止 推送通知服务无法正常工作 我在网上搜索并尝试根据人们的建议仔细检查我们的
  • 我如何获取用户的电子邮件? iPhone SDK

    我需要获取 Mail app 中使用的用户的电子邮件地址 如何使用 iPhone SDK 做到这一点 谢谢你 简短的回答 你不能 如果需要 您应该提示用户输入电子邮件地址
  • 检索 iPhone 中的 Outlook 联系人

    我想通过应用程序导入所有 Outlook 联系人 有什么办法可以做到这一点吗 请告诉我 您可以通过实施 Microsoft Exchange 服务器协议来实现此目的 微软MSDN http msdn microsoft com en us
  • 在不同的捆绑包上测试 iPhone 应用内购买?

    我们有一组 iPhone 应用程序的 Beta 测试人员 最近 我们在应用程序中添加了应用内购买功能 在此之前 我们会使用单独的捆绑 ID 和名称向 Beta 测试人员发送临时版本 以便他们可以在手机上拥有商店版本和临时版本 然而 似乎我们
  • 使用 NSDateFormatter 从字符串中获取日期,无论 12 小时到 24 小时设置如何

    今天我的问题是关于日期格式和字符串 我的应用程序从互联网下载一些表示日期的字符串 日期格式始终是这样的 2010 05 24 at 20 45 我需要将此字符串转换为 NSDate 对象才能执行一些日期操作 我尝试了这段代码 NSStrin
  • iPhone 允许光传感器作为输入吗?

    我只是想知道 iPhone 的开发是否允许使用光传感器 作为按钮或动作元素 我在网上找到了这个链接 可以使用光传感器作为按钮吗 存档 Touch Arcade 如果有人能阐明这个问题 我将不胜感激 Apple 代表的官方答复位于苹果开发者论
  • html canvas动画卡顿

    谁能解释为什么提供的画布动画断断续续 我创建了一个测试存根来演示该问题 我在桌面上的 FF Chrome IE 以及 Android 上的 FF 和 Chrome 中看到了卡顿现象 口吃是由于垃圾收集造成的吗 似乎 raf 在每次调用时都会
  • 如何减少典型 iPhone 应用程序的启动时间?

    需要明确的是 这是一个普通的 iPhone 应用程序 而不是游戏 我在网上读过几次 一些开发人员提到他们正在努力改进 减少应用程序的启动时间 但从来没有提供任何关于如何做到这一点的良好背景信息 那么问题很简单 如何减少 iPhone 应用程
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • ExpandableListView 的动画

    是否可以为 ExpandableListView 应用展开或折叠动画 可以使用一个简单的 ListView 来完成 该 ListView 包含最初隐藏的视图和扩展动画的自定义类 基本思想是从View GONE然后逐渐将边距大小从负值调整为所
  • 您将如何实现一个检测水平滑动以允许分页的 UITableView?

    我想实现一个 UITableView 一次显示 20 行 但考虑到我实际上可能要展示 120 个项目 我想使用某种分页来处理这个问题 使用前 20 项填充表 当用户从右向左滑动时 用接下来的 20 个项目重新加载 UITableView 从
  • 我可以知道 requireGestureRecognizerToFail 到底会做什么吗?

    谁能告诉我下面的代码行到底会做什么 我已经提到过Apples https developer apple com library ios documentation uikit reference UIGestureRecognizer C
  • 对于某些纹理尺寸,glFramebufferTexture2D 在 iPhone 上失败

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

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到
  • 在 UIWebView 中隐藏键盘

    有没有办法让 UIWebView 关闭所有关联的输入控件 例如键盘 选择器 还没有在带有选择器的网络视图中尝试过 但这绝对可以消除键盘 theWebView endEditing YES
  • 设置 TableView setEditing 时无法选择 UITableViewCell

    我希望能够选择多行 如下所示的默认邮件应用程序 我有一个名为编辑的按钮 可以调用 self myTableView setEditing YES animated YES 编辑按钮成功显示单元格左侧的圆圈 如上所示的邮件应用程序 但是 当我
  • 如何将设备令牌和应用程序版本发送到服务器

    我已经实现将设备令牌和应用程序版本发送到 serverm 它在模拟器 硬编码数据 中工作正常 但在设备中无法工作 任何形式的帮助将不胜感激 先感谢您 这是代码 void application UIApplication applicati
  • 如何连续关闭 2 个模态视图控制器?

    我有 2 个以模态方式呈现的视图控制器 A presents B which presents C 当我解雇C时 我也想解雇B 但我不知道该怎么做 解雇C self dismissModalViewControllerAnimated YE

随机推荐

  • 将路由与 Symfony 中的当前请求进行比较

    对于我的网站导航 我想指示当前页面 如果导航中的每个页面都有自己的路线 是否有办法查看当前请求是否与该路线匹配 就像是 request gt getRoute my route 或者 更一般地说 在 Symfony 中创建站点导航时是否有设
  • 单元测试如何确认已引发异常

    我正在为 C 类编写一个单元测试 我的其中一个测试应该会导致该方法在添加数据时引发异常 我如何使用单元测试来确认异常已被抛出 这取决于您使用的单元测试框架 在all在这种情况下你可以这样做 Test public void MakeItGo
  • 将字符串转换为双精度数是否等于字面量双精度数?

    例如 assert atof 1 2 1 2 不管使用什么浮动 我知道浮点精度并不精确 但它恰恰不精确 所以四舍五入到二进制会产生完全相同的双精度吗 C 标准不保证这一点 源代码中转换浮点文字的语义在 C 2011 草案 N1570 6 4
  • Angular 2 CLI - php 用于索引文件而不是 html 文件

    有没有办法将通过 Angular 2 CLI 创建和提供服务的 Angular 2 应用程序从默认的 html 文件更改为 php 文件 是否有某个地方的设置确定 ngserve 命令充当默认索引文件 MBU 似乎 Angular cli
  • 使用一个大的 INSERT 语句保存许多 Django 对象

    假设您有以下情况 for i in xrange 100000 account Account account foo i account save 显然 这10万INSERTDjango 执行的语句将需要一些时间 如果能够将所有这些结合起
  • 是否可以将类添加到伪元素?

    我想不会 因为这不起作用
  • Hive 分区验证

    我创建了一个分区的配置单元表 我将数据插入到该表中 现在假设我执行一个select 查询使用where那么我如何确保 Hive 查询正在使用分区 假设您的 HIVE 数据分为 3 个分区 并且每个 HDFS 分区包含一个不大于 1 个 HD
  • Android Vision Api - 条码检测如何获取条码类型?

    我正在使用 AndroidGoogle Vision API 并创建了一个标准条形码阅读器 但我想检测读取什么类型 格式的条形码 i e CODE 39 CODE 128 QR Code ETC 有没有办法返回类型 Thanks 因为我没有
  • 修复 Android TV 上控件的焦点

    我花了很多时间来理解为什么它不起作用 但仍然不知道如何修复它 我找到了这个解决方案https github com flutter flutter issues 49783 https github com flutter flutter
  • Visual C# sizeMode 固定制表符文本对齐方式

    我正在使用 Visual C 开发一个简单的选项卡式 Web 浏览器 我正在研究选项卡部分 我希望每个选项卡都是固定宽度 问题是 当它设置为固定大小模式时 网页标题中的文本对齐错误 就好像文本从中心开始 向右移动 在左侧留下了巨大的空白 我
  • db2中如何将逗号分隔的列转换为多行

    我有下表 参考文献的数量是可变的 Id FK ID Reference 1 2100 GI2 GI32 2 2344 GI56 我需要以下结果 Id FK ID Reference 1 2100 GI2 2 2100 GI32 3 2344
  • 为什么 self.navigationItem.hidesBackButton 不起作用?

    我有一个UI视图控制器被推到一个UI导航控制器并且当前显示 当我在视图控制器内启动一些异步任务时 我可以设置隐藏后退按钮在 self navigationItem 上YES 并且后退按钮已正确隐藏 任务一完成 我就设定了隐藏后退按钮回到NO
  • WildFly 多个域和 SSL 证书

    我有两个不同的域 example1 com example2 com 每个域都有自己的 SSL 证书 我现在想做的是将两个域用于同一个 WildFly 实例 支持 SSL WildFly 文档指出 我只能引用密钥库中的单个证书 因此 我不能
  • 在 ASP.Net MVC 3 中处理 Ajax 调用的正确方法

    当在 ASP Net MVC 中编码 Ajax 调用时 我们有很多选择来发出调用 在服务器上处理它们以及在客户端上处理成功和失败 有些事情显然有正确的答案 但我一直无法找到明确的指导 那么 端到端的ajax调用的正确方法是什么 包括 将 u
  • MVC3下如何给JavaScript赋值

    如何在MVC3 Razor下分配JavaScript值 我不确定它是否会起作用 谢谢你 var populate false if Session TechList null populate true 这也将起作用 if Session
  • 将点转换为经纬度

    我想知道如何获取地图点击事件坐标经纬度 这是我的代码 map on click function evt var element popup getElement var coordinate evt coordinate var latL
  • 无法导入 tweepy 模块

    我是安装新 python 模块的新手 我使用 pip install tweepy 安装了 tweepy 安装成功 并在 Lib site packages 中创建了 2 个文件夹 tweepy 和 tweepy 3 3 0 dist in
  • 创建 Matlab 运行线快捷方式(如 R)

    R 有一个很棒的快捷方式 可以运行光标当前所在的行 然后将光标移动到下一行 cmd return 在 matlab 中 您必须突出显示该行 然后运行突出显示的部分 shift F7 有没有办法创建 类似 R 的运行线快捷方式 我正在使用 O
  • 如何使用“cv2.perspectiveTransform”在Python OpenCV中的一组点上应用单应性?

    我想将单应性应用于以下几点 array 7 4894 1 8873 7 4973 1 8543 7 5375 1 6725 7 5681 1 522 7 5961 1 371 7 6252 1 2013 7 6504 1 031 7 667
  • RowAnimation 对于不同高度的单元格看起来很奇怪

    我在 UITableView 上动画删除和插入时遇到问题 事实是 我现在有不同的单元格高度 有些是 44 0 有些是 135 0 我有 uitableviewstyle 与不同的部分分组 每个部分的第一行是分组行 单击后 我将删除该部分中除