- 博客(15)
- 收藏
- 关注
原创 UICollectionView 和 UITableView 新旧 API对比
在iOS开发中,UICollectionView 和 UITableView 是两个非常重要的UI组件,用于展示数据集合。随着时间的发展,Apple对这两个组件进行了多次更新和优化,引入了新API来提升性能、简化代码以及提供更多的功能。下面我将从多个维度对这两个核心列表视图的新旧 API 进行详细对比分析,包括架构设计、数据管理、UI 配置、性能优化等方面的变化。
2025-05-23 10:23:25
665
原创 UICollectionView-UICollectionViewCompositionalLayout 布局中item、group、section之间的关系
UICollectionViewCompositionalLayout是iOS 13 引入的 Compositional Layout API。这种层级结构提供了极大的灵活性,可以实现复杂的网格、列表、瀑布流等布局。(分区)是层级关系,它们共同决定了。
2025-05-22 11:53:22
940
原创 SwiftUI APP是怎么启动的
SwiftUI 应用的启动过程通过声明式语法大幅简化,核心是通过@main标记入口、App协议定义全局行为,以及Scene管理窗口。开发者可通过ScenePhase监听状态,或桥接处理复杂系统事件,兼顾简洁性与灵活性。理解这一流程有助于优化启动性能并处理兼容性问题。
2025-05-22 09:57:57
651
原创 时序图vs泳道图
时序图和泳道图是两种常用的可视化工具,主要用于描述系统或流程中的交互与协作。通过这两种图表,可以更清晰地表达系统或流程的动态行为与静态结构,帮助团队减少沟通成本,提高设计效率。:电商订单处理流程中,划分用户、客服、仓库、物流的职责,展示订单从创建到配送的完整路径。:在系统设计中,可先用泳道图划分模块职责,再使用时序图细化关键交互逻辑。:在线支付流程中,展示用户、支付网关、银行系统之间的消息传递顺序。:时序图是UML(统一建模语言)中的一种行为图,,强调消息传递的时序性。,强调流程中的任务归属。
2025-04-29 15:07:23
1623
原创 声明式语法
它已成为 UI 框架的主流范式,尤其适合需要快速开发、频繁迭代的项目。尽管存在一定的学习成本和性能优化挑战,但其在代码简洁性、可维护性上的优势,使其成为构建复杂交互界面的首选方案。在 UI 开发中,开发者通过声明式语法直接定义界面应有的状态和结构,而无需手动管理视图的创建、更新和销毁过程。(Imperative Syntax)形成鲜明对比,后者需要开发者通过代码一步步控制 UI 的变化细节。UI 的渲染过程是“纯函数”式的,相同的输入(状态)始终生成相同的输出(UI),减少隐藏的 Bug。
2025-04-28 11:12:58
725
原创 ArkUI(鸿蒙的 UI 开发框架)和 SwiftUI对比
这种相似性源于现代 UI 开发框架的通用设计趋势(如 React、Flutter 等框架也采用类似模式),但两者在实现细节、技术栈和生态系统上仍有显著差异。ArkUI(鸿蒙的 UI 开发框架)和 SwiftUI 的语法确实在设计上有很多相似之处,尤其是在。ArkUI 和 SwiftUI 的语法相似性反映了现代 UI 开发框架的设计共识,但两者在。描述界面,开发者只需定义“UI 应该是什么样子”,而无需手动操作视图的创建和更新逻辑。实现数据与 UI 的绑定。
2025-04-28 10:30:57
1341
原创 Swift 在枚举中使用协议(Protocols)和协议扩展(Protocol Extension)
Swift 在枚举中使用协议(Protocols)和协议扩展(Protocol Extension)
2022-07-07 11:57:50
1012
原创 AppCode Updating indexes一直不停的填坑之旅
最近在做APP安装包瘦身,找到了传说中的AppCode神器。AppCode 提供了 Inspect Code 来诊断代码,其中含有查找无用代码的功能。它可以帮助我们查找出 AppCode 中无用的类、无用的方法甚至是无用的 import。经过了一番的安装破解后,准备使用Inspect Code去诊断代码,却发现Inspect Code功能是置灰状态不可用。然后开始查为什么Inspect Code不可用,网上查找了一番并没有什么头绪,猜想可能是由于实际项目工程文件量过大,导致无法建立索引...
2022-03-22 14:45:00
1054
原创 iOS13 静默推送填坑之旅
iOS 13系统版本发布后,发现静默类型的通知在iOS 13设备上无法正常接收到,但是在iOS 13之前的系统版本还是可以正常接收。刚开始发现这个问题,一度无法理解是什么原因,也没有看到苹果官方文档给出相关更新提示,甚至怀疑是iOS 13系统的bug。好了,废话不多说。经过一番的百度Google还是没有发现类似的问题的解决方案,一开始把问题的重心放在了iOS 13上,以为是有API变更或者是X...
2019-10-08 12:59:43
2179
原创 分治算法
一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题...
2019-05-09 14:31:44
511
原创 Linux Shell条件判断if中的-a到-z
[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。[ -d FILE ] 如果 FILE 存在且是一个目录则为真。[ -e FILE ] 如果 FILE 存在则为真。[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。...
2019-05-08 11:37:35
299
原创 shell脚本[] [[]]的含义解析
1、在中括号中,判断变量的值, 加不加双引号的问题?[ -z "$pid" ] 单对中括号变量必须要加双引号[[ -z $pid ]] 双对括号,变量不用加双引号2、多个条件判断,[] 和 [[]] 的区别?2.1:[[ ]] 双对中括号,是不能使用 -a 或者 -o的参数进行比较的;2.2 [ ] 可以使用 -a -o的参数,但是必须在 [ ] 中括号内,...
2019-05-08 11:29:04
614
原创 使用Xcode SVN 出现问题 The operation couldn’t be completed. (NSURLErrorDomain error -1012.)
使用Xcode SVN 出现问题The operation couldn’t be completed. (NSURLErrorDomain error -1012.)解决方法:打开终端然后输入如下命令svn ls xxxx (xxx是你SVN Server的地址)这里询问你是否允许这个地址的访问,我们输入 “ p”,然后回车即可。
2015-06-05 16:08:31
569
原创 iOS 隐藏键盘各种方法
方法一:弹出UIModalPresentationFormSheet模式- (IBAction)buttonPressed:(id)sender { NSLog(@"Show feedback view now!"); UIViewController *fbsheet = [[FeedbackSheet alloc] initWithNibNam
2014-07-25 15:03:42
496
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅