获得徽章 5
- 动态化是老板和产品的需求;
性能和包尺寸是老板的需求;
界面和体验一致性是UI的需求;
跨端、统一开发语言是技术的需求;
所以在技术选型时按上面从高到低的来,一般都不会有错。展开赞过22 - 面试必考题
:为什么圆角和裁剪后iOS绘制会触发离屏渲染?
答:默认情况下每个视图都是完全独立绘制渲染的。而当某个父视图设置了圆角和裁剪并且又有子视图时,父视图只会对自身进行裁剪绘制和渲染。当子视图绘制时就要考虑被父视图裁剪部分的绘制渲染处理,因此需要反复递归回溯和拷贝父视图的渲染上下文和裁剪信息,再和子视图做合并处理,以便完成最终的裁剪效果。这样势必产生大量的时间和内存的开销。解决的方法是当父视图被裁剪和有圆角并且有子视图时,就单独的开辟一块绘制上下文,把自身和所有子视图的内容都统一绘制在这个上下文中,这样子视图也不需要再单独绘制了,所有裁剪都会统一处理。当父视图绘制完成时再将开辟的缓冲上下文拷贝到屏幕上下文中去。这个过程就是离屏渲染!!所以离屏渲染其实和我们先将内容绘制在位图内存上下文然后再统一拷贝到屏幕上下文中的双缓存技术是非常相似的。使用离屏渲染主要因为iOS内部的视图独立绘制技术所导致的一些缺陷而不得不才用的技术。展开等人赞过评论20 - 国内程序员的开源项目,尤其是大厂的开源项目。在开源前一定要想清楚为后续的使用者负责。否则就是开源者一时爽,使用者受害。如果开源后没有社区的建设计划,没有官网的建设计划,没有及时的issue响应团队,没有重构升级的计划。那么就不要将其开源。等人赞过2818
- 分享一个平时小重构和代码修改后验证的小技巧:为了保证我们重构后的代码以及修改后的代码能够确认被运行,我们可以在修改处或者重构处设置调试断点,然后运行程序,确保所有断点都要运行到。每运行到一处断点时验证当前的逻辑是否正确,如果正确则把此处的断点取消,一直到所有设置的断点都被取消了则表明你所进行的重构和修改都被覆盖到了。等人赞过522
- 人都是有惰性的。每当一个新技术出来时一定会有一批学习这个技术的人去大力的推进这个事情,而对于老技术人员来说这是新事物所以会比较排斥或者去研究后认为是新瓶装老酒。对于新老技术的问题大家怎么看?这里就举三个例子:flutter,中台,微服务。评论点赞
- 今天一个群友和我交流起一个问题:“说看了我的一篇博客很受用,问我怎么能够监控程序中那些泄漏的对象被哪些闭包强持有。” 我回答说:“我只是负责生产砖块,具体房子你们去搭”。后来想了想又告诉他我的另外一篇文章,然后提供了一下思路,然后结合起来也许能解答问题。
然后又想起前一阵子抖音发的一篇火爆互联网的二进制重排文章。其中的block的拦截部分则是应用了我的某一篇文章中介绍的技术。抖音这个也算是建了一座房子。
其实现实中也是这样的:做砖的总是没有建房子的收入多! 人们更多的是关注那些造房子的人。但是总要有人去做砖。
其实我是来卖砖的,欢迎大家关注我的block四重奏:
1. 一种查看Block中引用的所有外部对象的实现方法juejin.im
2. iOS调试Block引用对象无法被释放的一个小技巧juejin.im
3. 运行时Hook所有Block方法调用的技术实现juejin.im
4. 深入解构iOS的block闭包实现原理juejin.im
展开等人赞过26