tableView reloadData页面跳动问题

参考:https://www.jianshu.com/p/5f033fdd4ddb

一般情况下

if (@available(iOS 11.0, *)) {

self.estimatedRowHeight = 0;

self.estimatedSectionFooterHeight = 0;

self.estimatedSectionHeaderHeight = 0;

self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

}

可以解决

但是如果有切换不同类型cell的需求,还是会跳动

需要将简单的reloadData替换为

[UIView performWithoutAnimation:^{
        [self reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
    }];
[UIView performWithoutAnimation:^{
        [self reloadData];
    }];

原文地址:https://www.cnblogs.com/huaida/p/12076561.html

时间: 2024-10-17 21:39:45

tableView reloadData页面跳动问题的相关文章

在textFieldShouldEndEditing 方法中调用[self.tableView reloadData] 失效问题

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField { NSString *value = [NSString stringWithFormat:@"%.2f", [textField.text floatValue]]; if ([value floatValue] >= 1) { textField.text = value; [self calculateServiceFees]; } else { self

[tableView reloadData] 和 runloop

需要[tableView reloadData]后需要立即获取tableview的cell.高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是会有问题的. 断点调试感觉[tableview reloaddata]是个异步操作导致下面的代码并不会再它执行完后才执行. 于是就想到了多线程,最简单使用动画来延迟执行 [UIView animateWithDuration:0.3 animations:^{ [self.collectionView reloadData]

CSS设计之页面滚动条出现时防止页面跳动的方法

一.水平居中布局与滚动条跳动的千年难题 当前web届,绝大多数的页面间布局都是水平居中布局,主体定个宽度,然后margin: 0 auto的节奏~ 例如,大淘宝的首页: 然而,这种布局有一个存在一个影响用户体验的隐患.应该都知道,现代浏览器滚动条默认是overflow:auto类型的,也就是如果尺寸不足一屏,没有滚动条:超出,出现滚动条.于是,问题来了: 信息流页面,如新浪微博,是从上往下push渲染的.开始只有头部一些信息加载,此时页面高度有限,没有滚动条:然后,更多内容显示,滚动条出现,占据

css页面滚动条出现时防止页面跳动的方法

大家写页面时应该都遇到过一个问题,尤其是写单页面应用的时候, 在有滚动条页面和没有滚动条页面之间相互跳转时, 你页面的主体内容会向左或者向右抖一下,让强迫症看了很不舒服. 现在就来解救一下强迫症: 方法一: 不管有没有滚动条,都保留滚动条区域 body{overflow-y: scroll;} 方法二:CSS3计算calc和vw单位巧妙实现滚动条出现页面不跳动(兼容IE9+以及其他现代浏览器) body{margin-left: calc(100vw - 100%);} 想用那种自己挑一个呗,嘿

TableView  — reloadData     刷新

//指定刷新某一行    NSIndexPath *indexPath=[NSIndexPath indexPathForRow:0 inSection:1]; [_readTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone]; //指定刷新某一段 NSIndexSet *indexSet=[[NSIndexS

Model--汇总

NSFileManager.NSURL.NSFileHandle.NSData.NSXMLParser.NSUserDefaults.NSKeyedArchiver.NSKeyedUnarchiver.CoreData.NSFetchRequest.NSEntityDescription.NSPredicate. NSSortDescriptor.UIImagePickerController.AVAudioPlayer.MPMoviePlayerController.NSThread.NSBl

tableview的reloadData应注意

http://blog.csdn.net/ouyangtianhan/article/details/7835041 http://stackoverflow.com/questions/16071503/how-to-tell-when-uitableview-has-completed-reloaddata UITableView reloadData的正确方法. 相信很多人会遇到这种情况,当tableView正在滚动的时候,如果reloadData,偶尔发生App crash的情况. 这种

ios-私人通讯录 页面间的跳转和传值

这个demo 有多个页面 并涉及顺传和逆传 而且还有一个第三方库的导入 来实现自定义提示消息的特效 利用代理来实现页面间的传值 一个页面代表一个controller 这次  ViewController  反而一句代码都没写 // // HMContact.h // 私人通讯录 // // Created by YaguangZhu on 15/9/6. // Copyright (c) 2015年 YaguangZhu. All rights reserved. // #import <Fou

UI基础--UITableView实现仿QQ聊天页面

需求:类似于QQ聊天页面的展示,内容包括有头像.时间.聊天内容.相同时间发生的内容,只显示第一条内容的时间,并且点击输入框时,可以滚动到最后一条内容信息.具体效果图: 实例的文件结构: 实现的具体步骤: 1.布局界面,主要包括一个UIImageView.3个UIButton.1个UITextField: 2.自定义数据模型类,并测试数据是否能正常加载: 3.自定义cell,由于每行数据的高度都是不规则的,所以考虑先自定义好frame再来写自定义cell.属性包括frame模型以及生成可重用cel