Telegram研究:chatlist最近会后类
包含关系 ChatListControllerImpl ChatListControllerNode ChatListContainerNode ChatListContainerItemNode ChatListNode.swift mappedInsertEntries mappedUpdateEntries 数据类型及UI 数据类 - UI类 ChatListEmptyHeader...
包含关系 ChatListControllerImpl ChatListControllerNode ChatListContainerNode ChatListContainerItemNode ChatListNode.swift mappedInsertEntries mappedUpdateEntries 数据类型及UI 数据类 - UI类 ChatListEmptyHeader...
1、继承关系 ListView: ASDisplayNode 2、刷新 刷新:(类似UITableView.reloadData()) 但是这个需要传入删、增加、修改那些数据, self.transaction(deleteIndices: xxx, insertIndicesAndItems: xxx, updateIndicesAndItems: xxx, options: ....)...
数据转换过程 Postbox.Message → MessageHistoryEntry → ChatHistoryViewTransitionInsertEntry + ChatHistoryViewTransitionUpdateEntry → ChatMessageItemImpl (类似UITableView里的datasource)→ ListViewInsertItem + L...
前言 由于项目里部分三方库已经很久远,支持的模拟器版本不包arm64-simulator架构,导致直接在新电脑上运行模拟器直接启动不了 1、三方库信息如下: lipo -info /Users/xx/xxx/xxx.a Architectures in the fat file: /Users/xx/xxx/xxx.a are: armv7 armv7s i386 x86_64 a...
前言 由于Telegram的代码量太大,而且显示的几乎全是_ASDisplayView,很多node文件有4000~5000行代码,导致调试查看十分麻烦,AsyncDisplayKit的ASDisplayNode提供了设置自定义类的方法,可以在debug时方便定位问题 setViewBlock的优先级要高于viewClass 方案一、在ASDisplayNode子类里设置setVi...
前言 在上一篇里提到过,之前被telegram里源码编译成静态库的过程吓住了一直没研究,实际是BUILD里调用shell脚本,podspec里也有一样的功能,利用这些特性可以正常将BUILD迁移到podspec,具体内容在前一篇里有写,只是单独把编译源码的部分抽取出来 telegram里有不少库都是直接引入三方的源码,在使用bazel编译阶段,直接把源码编译成xxx.a的静态库 比如...
之前研究telegram通过bazel使用的库改成在自己项目里使用cocopod引入,已经过去了一年有余,当时花了很大的功夫还遇到很大问题,现在回头再次研究使用,配合Chatgpt自动生成改写,发现很快就改写完了,这过程相对比较顺利,不过也遇到了一些问题 1、文件后缀不对 问题: ```Fetching external sources -> Fetching podspec for...
问题 在已有iOS项目里接入flutter模块后,第一次present或push一个FlutterViewController后,通过手势或调用方法关闭flutter页面后,再次present或push时展示不了flutter页面了 原因: flutter页面关闭后,flutterEngine.viewController还是持有FlutterViewController,导致Fl...
常见的iOS应用里,一行文字都可以标记出电话号码、链接等内容,方便用户在一段文本中点击拨打电话或点击链接 系统级实现方式,使用系统的 NSDataDetector + NSTextCheckingTypeLink +NSTextCheckingTypePhoneNumber - (void)enumerateMatchesInString:(NSString *)string opti...
参考: 将 Flutter module 集成到 iOS 项目 Flutter混合开发:在已有iOS项目中引入Flutter 在现有 iOS 项目中,接入新的 Flutter 项目或现有的 Flutter 项目 前言 世界唯一不变的是一直在变,最近项目里计划把部分模块使用flutter的SDK的方式接入,记得之前写flutter还是19年的时候,现在已经过去了5年...