前段时间突然发现Intellij不能自动重新加载类了,每次编译后都要重新启动项目,才能显示更新效果,后来网上查询Intellij下如何配置热部署,都说是要配置构件,然后在web容器的编辑页面选择...update resources and classes什么的,尝试后发现每次类是重新加载了,但是项目会自动重启一下,没解决我的问题。...Intellij的项目配置界面捣鼓,终于找到了方法,就是在Debugger配置节点下的HotSwap节点中找到 Reload classes after compilation选项,选择Ask即可,这样每次编译后,...就会提示你是否要重新加载classes,选择"是"就会自动reload classes,大部分情况下,修改类文件,就不需要重启了。
3个月前,我写过一篇关于性能优化的方法论(《前端性能优化思想模型,在自动驾驶领域的实践》),里面有提到过,我对PCD文件进行二进制转码处理后,效果非常好。...转码前后文件尺寸对比:(17.8MB vs 4.6MB,压缩率75%) 转码前页面加载效果:(ASCII编码,2倍速播放,18秒) 转码后页面加载效果:(二进制编码,2倍速播放,5秒) 之前也提到过...,在自动驾驶点云标注场景下,一次需要加载几十帧的数据文件,如果每一帧文件都是动辄十几二十MB,那即便做异步加载,等待时间之久也是相当令人头大的。...异步加载 2. 分片加载,增量渲染 3. 资源文件压缩 4....直到有一天,我发现我编码的文本里有一个鬼东西,原文中肉眼不可见,编码后是一个极其容易被忽视的小红点,我用代码读它,发现这东西的ASCII编码值是26。
问题描述:Excel加载了一个插件,但是因为目录调整自己挪动了位置,即使重新加载该插件,每次重启Excel还是报之前找不到插件的问题,虽然能使用,但是每次都报错很烦。...问题解决办法:虽然每次提醒报错后,可以删除不存在的加载项,但是重启Excel后还存在,最后想了下可能是注册表这里没有清除导致的,测试果然如此!...解决步骤: 打开注册表编辑器: 搜索自己安装的插件名: 找到后发现Excel安装插件名、路径都在如下位置: ……SOFTWARE\Microsoft\Office\16.0\Excel\AddInLoadTimes...下面 重复报错,发现AddInLoadTimes下面的xlam插件路径还是原来旧的,果断删除该注册表项,再重新添加问题即可解决!
postman启动加载很慢,更新替换版本后,数据丢失如何找回?
0:NSNumber 0 表示约束值为0。这里是Label1距离上边界的约束为0。 Label1:表示对象Label1。 0:表示Label1和Label2的约束为0....然后,在不同屏幕尺寸下view就能够按照约束来局。 ? ? 添加如下约束: ?...此图中距顶的约束是10, 距底的约束8, 距左边约束是87,距右边的约束是13, 那么systemLayoutSizeFittingSize:返回的CGSize为height等于19, size等于100...defaultHeight; return 1 + height; } 随UITextView高度改变Cell高度 当UITextView内容改变的时候,计算自身高度,然后通知UITableView更新...,这样就会触发UITableViewCell高度重新计算,从而改变Cell的高度。
TableView优化之高度缓存 系列文章: TableView优化之高度缓存功能 TableView优化之加载图片的优化逻辑 TableView优化之快速滑动下的忽略加载 ---- 呐,也好久没写博客了...cell.NoAutoSizing && width > 0) {//如果不是非自适应模式则添加约束后计算约束后高度 NSLayoutConstraint * widthConstraint...让后通过三目运算符返回相应的字典。 是不是写法上很简单,实际使用过程中也很方便。...没有什么会影响重新绘制的,记住那句代码一定会走,只要走就一定会绘制。如果说你绘制出了什么问题,不要怪重用,跟他没关。问题一定在别的地方。 恩,这是老司机对重用的理解。...cell.NoAutoSizing && width > 0) {//如果不是非自适应模式则添加约束后计算约束后高度 NSLayoutConstraint * widthConstraint
急速的更新手机系统进行测试,发现真的是有问题,而且这个问题是UITableView+FDTemplateLayoutCell 引起的,计算的高度不准确引起的。...对Autolayout的约束有新的计算方式。...如果给的小了计算的高度就高,给的大了计算的高度就低 加 [cell layoutIfNeeded] ---- 因为有时候我发现第一次label显示的是没问题的,但是刷新一下就不行了,所以我想到在刷新重新算高度之前刷新下约束...,此路不通我再想他法继续往下看 3.给cell.contentView 加左右约束 在这里我这样理解的,既然xcode自动帮我们加的左右约束有问题,那我不用他的了, 我自己加 ?...2.png 在同样的地方替换掉layoutIfNeeded,换成加左右约束, 记得后面加上priorityLow ,这样是避免跟cell 里面手动加的约束起冲突,这样就技能满足nib cell 也能满足纯代码
那就是当添加或者删除子视图时以及调整了某个子视图的位置和尺寸时就需要重新调整父视图的自适应约束设置。...通过这样的设置后UIScrollView视图的contentSize将得到自动的计算。...上面的约束设置实现视图滚动的机制也有一定的局限性!那就是一旦在容器视图中添加子视图时就需要重新调整容器视图的右边界和下边界的约束依赖。...因为MyLayout&TangramKit中的尺寸自适应约束不需要明确依赖某个子视图,因此当布局视图中的子视图有变化时系统会自动重新进行布局视图的尺寸计算,而当布局视图的尺寸变化时又会调整UIScrollView...因此如果想使用布局视图的尺寸自适应功能,那么在将布局视图的尺寸设置为wrap后,就可以像使用UILabel那样不用去设置布局视图的宽度约束和高度约束了。比如有两个兄弟视图A,B。
然后UITableViewCell向左拖拽时会出现删除按钮: ?...indexPath.section] removeObjectAtIndex:indexPath.row]; // [tableView reloadData]; //删除后全部重新加载...indexPath.section] removeObjectAtIndex:indexPath.row]; // [tableView reloadData]; //全部重新加载...tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft]; } } 运行后一加载截图为...按住想要移动的UITableViewCell的哪个三横图标,可以进行移动 ?
—— 在数据源和代理方法中,进行判断 if (self.leftTableView== tableView) {} else{} 具体步骤: 1、添加2个UITableView,设置约束...property (nonatomic, copy) NSString* currentCity; @end @implementation ViewController #pragma mark 懒加载.../** * 懒加载plist * * @return plist对应的字典 */ - (NSDictionary*)cityNames { if (_cityNames == nil...cityNames = [NSDictionary dictionaryWithContentsOfFile:path]; } return _cityNames; } /** * 懒加载省份...void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath { //点击左边加载右边的数据
在应用中最多使用的UITableView以及UITableViewCell中的数据更新的处理机制使用不恰当导致delegate中的方法实现异常的复杂,尤其是那些复杂的UITableViewCell的更新处理不得当导致代码混乱不堪...很多人都喜欢在viewDidLoad里面进行视图的构建,其实不是最佳的解决方案,因为根据字面意思viewDidLoad里面添加的应该是视图构建并加载完成后的一些处理逻辑。...如果因为某些原因使得我们的控制器里面的所有视图都需要重新创建(比如换肤)时那么就有可能导致这个懒加载的视图不会再次被创建而产生界面上莫名其妙的问题。...视图的更新以及和数据模型的交互 最后我们再来说说令人烦恼的UITableViewCell的更新方法。UITableView是目前App中使用最多的控件之一。...如果这部分逻辑特别多的话我们就考虑为UITableViewCell的派生类提供一个更新视图的方法来解决问题。
repopulated [self _updateSectionsCache]; [self _setContentSize]; _needsReload = NO; } 因为需要重新加载数据...,所以将缓存以及复用的Cell都清空掉,SectionsCache也更新掉 layoutTableView - (void)_layoutTableView { // lays out headers...= boundsSize.width; _tableFooterView.frame = tableFooterFrame; } } 这一步操作主要是将已经初始化的Cells重新布局...makeObjectsPerformSelector:@selector(removeFromSuperview)]; [_reusableCells removeAllObjects]; 在TableView滑动或者做了其他更新布局...而当我们重新将 Cell 0 滑入界面的时候,在系统 addView 渲染阶段,会直接将 _reusableCells 中的 Cell 0 立即取出进行渲染,从而代替创建新的实例再进行渲染,简化了时间与性能上的开销
自适应高度 -------- // 尽量提高计算效率, 已计算过的高度需要进行缓存, 没必要进行第二次运算 // 必须满足3个条件 // 1. cell.contentView 四边与内部元素有约束关系...54907560 // 可以将数据绑定放在cell显示出来之后再执行 以提高效率 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell...*)cell forRowAtIndexPath:(NSIndexPath *)indexPath { } - (UITableViewCell *)tableView:(UITableView *)...cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier...*indexPath in visiblePaths) { // 获取dataSource里的对象, 并且判断加载完成是不需要再次异步加载 } } return cell
否则每次滑动,UITableView 都会重新生成一个新的 UITableViewCell,这样极其浪费资源,而且容易造成主线程卡顿。 3....用户可以删除、移动任何一行,下拉则列表中的数字重新刷新。...主要就是给 tableView 添加 refreshControl,它能够重新生成随机数并加载 tableView。...首先检查 UITableViewCell 是否进行了复用。对于复杂视图的创建,可以采用惰性加载来推迟创建时间。尽量减少视图层级也是很好的优化方法。...9.说说实现预加载的方法 关键词:#网络传输 #无限滚动 #Threshold 在实际开发中,列表经常需要随着滑动而不停的展示新的内容。在滑动到一定程度后,我们就需要发送网络请求,以获得新的数据。
相反,它会将不再可见的 UITableViewCell 放入一个 重用池 中(使用 reuseIdentifier 进行标识),当需要显示新的单元格时,从池中取出已经创建的单元格并重新配置它们。...1.3 懒加载和延迟加载为了优化性能,UITableView 并不会一次性加载所有的单元格,而是根据当前屏幕的显示区域来动态加载单元格。当用户滚动时,它会继续加载新的单元格并回收旧的单元格。2. ...以下是重新实现一个简单的 UITableView 的步骤。2.1 基本架构首先,我们需要定义以下内容:UITableView 类,管理数据和视图。UITableViewCell 类,管理每一行的展示。...@[@"Row 1", @"Row 2", @"Row 3", @"Row 4", @"Row 5"]; [self.view addSubview:tableView]; // 重新加载数据...总结通过重新实现一个类似 UITableView 的控件,我们能够深入了解其工作原理。关键点在于 复用机制 和 延迟加载,这两个特性使得 UITableView 能够高效地展示大量数据。
这个值设置之后,开发者无需设置rowHeight属性,也不需要实现heightForRowAtIndexPath方法,系统会自动根据UITableViewCell中contentView的约束来计算自己的行高...所谓足够压力,是指UITableViewCell的contentView的上、下、左、右必须被内部控件的约束所撑满,需要注意,cell上的视图必须添加在contentView上,否则计算会出现问题。 ...例如下图所示,左侧的图标进行了与父视图的左侧距离约束,标题Label进行了与父视图的上侧距离约束和右侧距离约束,内容Label进行了与标题Label的上侧约束和与父视图的下册约束,并且对宽度进行了约束。...此时,UITableViewCell的contentView四周都被子视图进行了约束,可以想象,内容Label的文本长度是不定的,当文本长度是的内容Label进行换行,内容Label的高度改变的时候,contentView...为前提,对于没有使用自动布局,cell的高度需要手动计算的场景中,如果实现了这个方法,并且实现了heightForRowAtIndexPath方法,heightForRowAtIndexPath方法会以懒加载的方式执行
的宽度是320高度是44 因为在iOS5的时候, 默认Cell就是320宽(那阵屏幕就是那么宽,然后高度是44) 现在是在layoutSubViews 重新绘制这个cell的宽度和高度,...做到前几点后,你的table view滚动时应该足够流畅了,不过你仍可能让用户感到不爽。常见的现象就是在更新数据时,整个界面卡住不动,完全不响应用户请求。...例如每次载入50条信息,那就可以在滚动到倒数第10条以内时,加载更多信息: - (void) tableView: (UITableView *)tableView willDisplayCell: (...updating) { updating = YES; [self update]; } } // update方法获取到结果后,设置updating为NO 还有一点要注意的就是当图片下载完成后...,如果cell是可见的,还需要更新图像: NSArray *indexPaths = [self.tableView indexPathsForVisibleRows]; for (NSIndexPath
前言 之前在UITableViewCell系列之(一)让你的cell支持二次编辑中说过,很早就想系统的写一篇关于UITableViewCell的文章,目的是总结一下自己在项目开发中用过的一些关于UITableViewCell...给cell的contentView添加一个UIImageView子控件 给imageView添加上下左右约束 给cell添加一个对象方法。...用于tableView滚动时,更新imageView的Y坐标值 在UIScrollViewDelegate的scrollViewDidScroll:方法里调用cell的对象方法,更新imageView的...约束设置如下: ? Snip20160730_1.png 2....CGFloat distanceWillMove = distanceOfCenterY / CGRectGetHeight(view.frame) * distanceH; // 5.更新图片的
我们要确定设置单元格子视图约束是相对于contentView的,如下的约束就是错误的。...因为在布局的时候是相对于self的,这样可能会使约束错乱,自适应高度无效。...make.top.left.right.equalTo(self); make.height.mas_equalTo(10); }]; 2.结合xib类型单元格使用时的错误 因为我使用了xib文件来加载视图的...[view setupConstraints]; return view; } //返回单元格 - (UITableViewCell *)tableView:(UITableView...]; } //返回单元格,不再使用getOrderTableViewCell方法 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath
1.先去缓存池中找,是否有可以重用的cell 2.如果缓存池中没有,创建一个cell,并给它一个重用标示 3.设置数据 1 传统重用机制 //返回每一组的每一行显示什么内容 - (UITableViewCell...:ID]; // 如果缓存池中没有ID,创建一个cell,并给它一个重用标示 if (cell == nil) { cell = [[UITableViewCell...如果tableView需要一个cell,会加载指定的xib来创建需要的cell 通过制定一个类来注册cell,并设置重用标示。...forIndexPath:indexPath]; // 设置数据,赋值给cell return cell; } 3.3 通过类注册cell的问题 通过以下创建的是默认样式,没有办法加载更多内容...子类,然后重新这个方法。