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

当我尝试使用tableView(moveRowAt:)对行进行重新排序时,TableView行高缩小

当使用tableView(moveRowAt:)对行进行重新排序时,TableView行高会缩小。

在使用tableView(moveRowAt:)方法对TableView的行进行重新排序时,可能会导致行高缩小的情况。这是因为在重新排序过程中,TableView会重新计算并更新行的布局和高度。

要解决这个问题,可以通过以下步骤来调整行高:

  1. 在TableView的数据源方法中,例如tableView(:cellForRowAt:)和tableView(:heightForRowAt:),确保正确地返回每行的高度。可以根据行的内容或其他条件来确定行的高度。
  2. 在调用tableView(moveRowAt:)方法之前,先记录当前行的高度。
  3. 在重新排序完成后,更新TableView的数据源,并在tableView(_:cellForRowAt:)方法中根据新的数据源返回正确的行高。
  4. 在tableView(:willDisplay:forRowAt:)方法中,检查当前行是否需要重新设置高度。如果需要,可以使用tableView(:beginUpdates)和tableView(_:endUpdates)方法来刷新行高。

以下是一个示例代码,展示了如何在重新排序时调整行高:

代码语言:txt
复制
// 记录当前行的高度
let originalHeight = tableView.rowHeight

// 调用tableView(moveRowAt:)方法进行重新排序

// 更新TableView的数据源

// 在tableView(_:cellForRowAt:)方法中返回正确的行高
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // 根据行的内容或其他条件来确定行的高度
    return originalHeight
}

// 在tableView(_:willDisplay:forRowAt:)方法中检查并重新设置行高
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    if cell.frame.size.height != originalHeight {
        tableView.beginUpdates()
        tableView.endUpdates()
    }
}

以上是对于当使用tableView(moveRowAt:)对行进行重新排序时,TableView行高缩小的解决方法。希望能对你有所帮助。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各种业务需求。产品介绍链接
  • 腾讯云云数据库 MySQL 版:高性能、可扩展的关系型数据库服务。产品介绍链接
  • 腾讯云对象存储(COS):安全可靠、高扩展性的云端存储服务。产品介绍链接
  • 腾讯云人工智能:提供丰富的人工智能服务和解决方案,助力业务创新。产品介绍链接
  • 腾讯云物联网平台:提供全面的物联网解决方案,帮助连接和管理物联网设备。产品介绍链接
  • 腾讯云移动开发:提供全面的移动开发工具和服务,助力移动应用开发。产品介绍链接
  • 腾讯云区块链服务:提供安全、高效的区块链解决方案,满足不同场景的需求。产品介绍链接
  • 腾讯云音视频处理:提供音视频处理和分发的全套解决方案,满足多媒体处理需求。产品介绍链接
  • 腾讯云云原生应用引擎(TKE):提供高度可扩展的容器化应用管理平台。产品介绍链接
  • 腾讯云网络安全:提供全面的网络安全解决方案,保护业务的安全性。产品介绍链接
  • 腾讯云音视频通信(TRTC):提供高品质、低延迟的实时音视频通信服务。产品介绍链接
  • 腾讯云元宇宙:提供虚拟现实(VR)和增强现实(AR)技术,创造沉浸式体验。产品介绍链接
  • 腾讯云服务器负载均衡(CLB):提供高可用、高性能的负载均衡服务。产品介绍链接
  • 腾讯云数据库缓存(TencentDB for Redis):提供高性能、可扩展的内存数据库服务。产品介绍链接
  • 腾讯云弹性伸缩(Auto Scaling):根据业务需求自动调整资源规模,实现弹性扩缩容。产品介绍链接
  • 腾讯云云函数(SCF):无服务器计算服务,帮助简化应用开发和部署。产品介绍链接
  • 腾讯云云监控(Cloud Monitor):提供全面的云端监控和告警服务,保障业务稳定运行。产品介绍链接
  • 腾讯云云安全中心(SSC):提供全面的云安全管理和威胁检测服务。产品介绍链接

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

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

相关·内容

  • iOS中表视图(UITableView)使用详解

    UITableViewDataSource> dataSource; @property (nonatomic, assign)   id   delegate; 设置表示图的...sectionHeaderHeight;    @property (nonatomic)          CGFloat                     sectionFooterHeight;  设置一个的估计值...的是可变的,那么设计一个估计高度可以加快代码的运行效率。...tableView的顶部         UITableViewScrollPositionMiddle,//定位完成后,将定位的显示在tableView的中间        UITableViewScrollPositionBottom...,tableView会立刻调用代理方法进行刷新,如果其中我们所做的操作是删除某行,而然数据源数组我们可能并没有刷新,程序就会崩溃掉,原因是代理返回的信息和我们删除后不符。

    1.4K30

    设置Cell的:五种方法及优先级1. 四种基本设置方法2. 四种方法的优先级3. 自动进行计算cell的

    传统意义上设置tableView高一共有四种方法。等等,标题不是说有五种方法嘛。别着急,咱们先看四种最基本的方法,最后再说第五种自动计算的方法。 1....最后加载代理方法,这样会将之前设置的内容进行覆盖。 3. 自动进行计算cell的 终于来了第五种方法,这里设置约束的时候用到Masonry的第三方框架。...在设置数据时一定要注意,有配图就设置上; 没有配图,一定要把image重新写为nil。 我们平时设置约束很多都是上左宽,不管底边。...3.2 具体实施 3.2.1 添加预估、自行计算 //预估 //自动计算 self.tableView.rowHeight = UITableVIewAutomaticDimension...代码一: // 为了自动设置,就必须从contentView的底边进行约束 [self.contentView mas_makeConstraints:^(MASConstraintMaker

    1.6K60

    IOS开发的基础知识建议收藏

    大家好,又见面了,我是全栈君 1.为什么一个变量release后还要设为nil   一个变量release后,这个变量指向的内存释放了,但这个变量本身没变,仍指向原来的内存地址。...设为nil后这个变量指向0×00,可以保证程序以后访问不到原先的内存地址,nil进行release也没任何问题。 2....的机制大概是:先定好总行数,某一滚入视图范围时,回调一个函数去取view出来显示。...这一滚出视图再滚入时仍会继续回调这一函数取view。...曾尝试webview嵌在tableview里,为了让webview跟tableview一起滚动,把webview的大小设为webview里的内容大小,让webview不出滚动条,从而能跟着tableview

    54320

    React-Native iOS 列表(ListView)优化方案

    针对 React-Native 的列表性能问题,现在提供几套可行性方案: 1.利用 Facebook 提供的建议 ListView 进行优化 Facebook 官方 ListView 的性能优化做了简单介绍...如果我们想尽可能的快,我们可以设置它为1, 然后可以在后续的帧中,填弃其它的。...当我们的需求比较复杂或者需求发生变化时,就需要重新桥接我们的自定义 cell,这样工作量就会比较大。...当我们在进行列表展示的时候,如果数据量不是特别的庞大(不是无限滚动的),且界面比较复杂的时候,方案1能够比较好的解决性能问题,而且操作起来比较简单,只需要对 listview 的一些属性进行基本设置。...当我们需要展示很多数据的时候(不是无限滚动的),我们可以使用方案2,那些超出屏幕外的部分,进行组件最小化 当我们需要展示大量数据(可以无限滚动的),我们可以通过方案3/4,来达到重用的目的

    1.8K20

    TableView优化之快速滑动下的忽略加载

    那么为什么VVebo使用率那么呢?一方面是当时新浪微博客户端的确不行,另一方面VVebo简约的风格和流畅的体验俘获了一大批用户。所以今天我们就来探究一下他是如何做到TableView的丝滑体验的。...在老司机看来,作者最有效的优化分为4部分: TableViewCell圆角优化 缓存 相对固定的图片及文字采用CoreText绘制 TableView加载数据逻辑优化 ---- 1.圆角 这部分作者的优化很简单...= ---- 2.缓存 这部分内容老司机在上一期讲述过不定cell缓存的必要性及缓存的方法,这里不再赘述。...但是代码怎么可能不写,只是我在别的地方写过了,并且花了大把时间进行解耦,让每一个TableView都能拿来就直接使用。 那么这个解耦的类我们要怎么写呢? 好的,我们来新建一个文件。...老司机添加了高度缓存、滚动优化等优化功能,并且选择、展示动画、无数据占位图等常用功能都进行了支持。而且老司机也在不断的丰富helper类的功能。 只放一个版本更新记录吧,代码放不下=。

    1.7K33

    iOS-TableView统一数据源代理

    只要遵循它,就不用每次都要写一大堆的代理方法,下面就是我写的一个代理类的使用 private var delegate = CCDataSource() lazy private var...尾部高度 return 0.01 }.rowHeight{ (indexPath, data) -> (CGFloat) in // 8....的代理,这里我将dataSource和delegate统一为delegate了,并且如果有多个TableView,我们还可以创建多个代理实例与其一一应 网络请求:这里是做网络请求地方,并且将请求后的数据保存在代理类中...来返回相应的cell注册的identifier即可 头部高度:header的高度,可以是定值,也可以根据section来动态返回 尾部高度:footer的高度,可以是定值,也可以根据section来动态返回 ...:这里的可以通过data来获取,这样利于做高度缓存,也可以通过indexPath来动态返回 配置数据源:这里可以获取的已经初始化号的cell和其对应的数据源,我们只需要将其赋值给cell即可 点击事件

    91410

    Android 自定义LayoutManager实现花式表格

    前言 表格是自打我进公司以后就使用的控件,起初使用的是ScrollablePanel,从一开始的被花式吊打,到后期的熟练使用。 ?...为了确保表格的每一个单元格的长度和宽度都一样(子视图可以在横纵方向上占有多个单元格),宽和使用两种方式: 设置具体的值,那么单元格的宽或者的值就是具体的 设置一或者一列可以容纳的单元格数量 所以宽各有两种...如果TableView使用的模式是Mode_A、Mode_C和Mode_D,需要再重新测量: mTable.post(() - mTable.reMeasure()); 总结 总的来说,TableView...的核心是TableLayoutManager,也就是RecyclerView中的LayoutManager,类似于可以随时横纵向切换的GridLayoutManager,如果各位同学TableView...以上所述是小编给大家介绍的Android 自定义LayoutManager实现花式表格,希望大家有所帮助!

    1.7K21

    实际操作-手把手探究tableViewCell上的控件点击事件进阶篇:实际项目操作

    答:使用手势。 ?...---- -------------------------华丽分割线------------------------ 正确做法:不在tableView点击进行数据请求,要拿到数据下标,并不只有didSelectRowAtIndexPath...我们拿到的当前行的数据,是tableView - cellForRowAtIndexPath方法设置cell数据展示的时候,一传过来的,所以每个indexPath.row对应的数据,我们通过网络请求...原理解释 如图:我们并不调用点击事件,但是当我们点击cell的按钮,通过代理把cell的内容(如上图的内容:b)回传到控制器tableView上显示的时候,从tableVIew展示的内容-->b,我们就可以知道刚才点击的是哪个...-->而且完美解决了AFN异步网络请求导致的需要数据可能为空的问题,也希望能给新手们提供一点探究原理的思路和流程,小tips:面试的时候,如果你体现出技术的渴望,底层原理的探究,探究的思路和步骤等等

    3.6K50

    在iOS中怎样创建可展开的Table View?(下)

    开始我们需要知道点击的索引(记住,不是实际的indexPath.row)而是可见cell的索引,所以我们将会开始在下面的tableView代理方法里给它分配一个局部变量: func tableView....所以,在我们重新加载tableView之前,我们需要app找到可见的索引值: func tableView(tableView: UITableView, didSelectRowAtIndexPath...tblExpandable.reloadSections(NSIndexSet(index: indexPath.section), withRowAnimation: UITableViewRowAnimation.Fade) } 正如你看到的,我使用了动画的方式来重新加载点击...tableView的方法,主要的特点就是在一个plist文件中,所有cell的描述都使用具体的属性.我向你展示了当cell显示,打开或是选中的时候,如何使用代码处理cell的描述列表;此外,我给了你一个方法通过用户输入数据来直接更新它....肯定你会发现方法来改进给定的代码,或者根据你的需要来调整它.是时候说再见了,玩的开心,永远不要停止尝试!

    1.5K30

    iOS11、iPhone X、Xcode9 适配

    属性被废弃了,因此当tableView超出安全区域时,系统自动会调整SafeAreaInsets值,进而影响adjustedContentInset值 // 有些界面以下使用代理方法来设置,发现并没有生效...,却没有实现View的代理方法,iOS10及以前这么写是没问题的,iOS11开启了高估算机制引起的bug,因此有以下几种解决方法: // 解决方法一:添加实现View的代理方法,只有实现下面两个方法,...viewForHeaderInSection:(NSInteger)section { return nil; } // 解决方法二:直接使用tableView属性进行设置,修复该UI错乱 self.tableView.sectionHeaderHeight...0, 0, 0)]; // 解决方法三:添加以下代码关闭估算 self.tableView.estimatedRowHeight = 0; self.tableView.estimatedSectionHeaderHeight...如果使用了Masonry 进行布局,就要适配safeArea ([UIDevice currentDevice].systemVersion.floatValue >= 11.0) { make.edges.equalTo

    47920
    领券