![](https://i-blog.csdnimg.cn/direct/f2a548330f5349b8934f2b28e2cc1bea.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
开发经验分享
文章平均质量分 94
一个专注于iOS实际开发项目经验的博客专栏。在这里,我们将记录项目开发过程中有趣的开发经验,分享实际开发过程中有用的开发技巧,整理能够帮助自己和他人提升开发效率的实现方案。
胖虎1
这个人不懒,什么都没有留下
展开
-
实际开发中的模块化开发 - 应用到直播间
博客到此为止,我们完整演示了如何在模块化开发中利用模块管理和消息总线来实现模块间的消息和数据传递。消息总线的引入显著减少了模块之间的依赖关系,使得在大多数情况下,我们无需从一个模块中直接访问另一个模块。尽管目前的方法已经适用于大多数项目,但在处理复杂的直播间业务时,它依然显得过于简洁。目前的系统仅区分了主播和观众,尚未考虑房间类型的区分。此外,所有模块都是直接加载的,这可能会导致资源浪费。在模块化结构中,模块加载的顺序也是至关重要的,我们将在后续版本中进一步完善这些问题。原创 2024-08-22 18:26:53 · 827 阅读 · 0 评论 -
实际开发中的模块化开发 - 模块间通讯(以直播间为例)
本篇博客主要介绍了模块化开发时模块与模块之间的通讯方案-消息总线的实现过程。我们首先修改了项目的整体结构使用PHRoomControlCenter控制中台来管理模块管理对象和消息管理对象,也对模块进行一点调整,为了它能够注册,发送和处理消息。还构建了一个完整的消息总线,用来构建和分发消息。在接下来的博客中将会继续介绍在项目内,如何让模块管理和消息总线共同作用来实现模块间的通讯。原创 2024-08-20 18:38:33 · 931 阅读 · 0 评论 -
iOS中的崩溃拦截 - 消息转发
通过本文的介绍,我们深入探讨了如何利用消息转发机制在iOS中实现崩溃拦截。消息转发不仅为未识别的选择器提供了一种优雅的处理方式,也为开发者在调试和优化应用时提供了更多的灵活性。然而,正如我们所讨论的,虽然消息转发能帮助避免崩溃,但滥用它可能会掩盖代码中的真正问题。因此,建议开发者在实际应用中,合理使用这一机制,以保持代码的健壮性和可维护性。希望本文的内容能够为你提供有价值的参考,帮助你更好地掌控iOS开发中的异常处理。原创 2024-08-18 09:24:53 · 797 阅读 · 0 评论 -
实际开发中的模块化开发 - 模块管理(以直播间为例)
本文将探讨如何在实际开发中应用模块化开发,以直播间为例,详细介绍模块化开发的概念、优势及其在直播间应用中的具体实现方法。我们将从直播间的业务需求入手,逐步拆解系统功能,展示如何将复杂的应用拆分成多个可管理的模块,并探讨在模块化开发中遇到的挑战和解决方案。原创 2024-08-16 13:46:44 · 841 阅读 · 0 评论 -
iOS中调整按钮图片和文案的布局
调整图片和按文字的EdgeInsets,这个方案很好既保留了系统的UIButton又可以完美的适应自动布局。原创 2024-08-10 14:50:51 · 1097 阅读 · 0 评论 -
使用约束布局设置哪个视图优先被拉伸( Content Hugging Priority)
Content Hugging Priority 是指视图抗拒被拉伸超出其固有内容大小的能力。简单来说,当一个视图被其他布局约束强迫拉伸时,Content Hugging Priority 决定了视图有多“抗拒”这种拉伸。优先级数值越高,视图越不容易被拉伸。优先级数值越低,视图越容易被拉伸。在 Auto Layout 中,系统会根据视图的内容大小来确定视图的初始尺寸,而 Content Hugging Priority 则用于防止视图被拉伸到超出其内容大小。原创 2024-08-01 09:53:53 · 1036 阅读 · 0 评论 -
提升iOS开发效率:如何正确使用日志、埋点和断言
在 iOS 开发中,日志、埋点和断言是三种强有力的工具,它们各自扮演着重要角色。日志通过记录和追踪应用运行时的信息,帮助开发者调试和分析问题;埋点通过收集用户行为数据,为产品优化和用户体验提升提供了宝贵的依据;断言则通过验证代码假设,确保程序在开发阶段的正确性和稳定性。通过合理地使用这三种工具,开发者可以显著提高开发效率,减少错误发生的概率,提升应用的质量和用户满意度。在日常开发中,我们应根据具体场景和需求,选择合适的工具进行应用,从而构建出更加可靠和高效的 iOS 应用。原创 2024-07-31 09:18:06 · 546 阅读 · 0 评论 -
iOS 中使用 UITableView 实现多个二级列表与共享组标题
示例代码通过本文的讲解,我们了解了如何利用 UIScrollView 和 UITableView 实现多个二级列表共享组标题的效果。通过合理的手势处理和视图布局,我们可以创建一个用户体验良好的界面,让数据展示更加直观和美观。在实现过程中,方法起到了关键作用,确保了多个手势的同时识别,使得我们的交互更加顺畅。希望通过这篇文章,你能够掌握这一技巧,并应用到实际的开发中去。未来,随着 iOS 的不断发展,相信会有更多强大的控件和方法帮助我们实现更加丰富和复杂的用户界面设计。原创 2024-07-29 18:58:57 · 786 阅读 · 0 评论 -
Photos框架 - 自定义媒体选择器(UI列表)
本篇博客我们使用已经获取到的媒体数据创建了一个基础的媒体资源选择列表页面。并且使用实现了列表资源的选择和取消选择功能。至此整个资源选择列表的功能算是完成了,但是常见的资源列表往往还会有一个资源大图的预览功能,下一篇博客我们就来讨论一下媒体原始资源的加载时机,并实现预览功能。原创 2024-07-25 17:57:13 · 1098 阅读 · 0 评论 -
Photos框架 - 自定义媒体资源选择器(数据部分)
我们从自定义个媒体选择器入手,来探讨一些Photos框架的用法,本篇博客我们主要介绍了使用Photos获取相册权限,读取媒体数据,以及如何配置读取的数据参数。下一篇博客我们将开始使用这些数据来构建一个媒体资源选择器的UI页面。原创 2024-07-25 09:13:44 · 1053 阅读 · 0 评论 -
iOS实际开发中使用数据驱动页面布局
通过这个典型的“Me”页案例,我们分别使用硬编码和数据驱动布局来实现页面构建。通过对比可以发现,在实际开发过程中,使用数据驱动页面布局的方式更加灵活且更容易扩展。每一个小元素都拥有完整的功能,在添加或删除时,我们只需要对数据略微进行修改,而不需要大幅度修改约束代码或添加大量的条件判断。这不仅提高了开发效率,也增强了代码的可维护性。原创 2024-07-24 17:27:51 · 2119 阅读 · 1 评论 -
使用约束布局该如何设置哪个视图(UILabel)的内容优先被压缩?
压缩阻力优先级的概念至关重要,通过使用内容压缩阻力优先级,我们可以更好地控制UI中各个UILabel的显示效果,确保重要信息能够优先显示完全。希望这篇博客能帮助你更好地理解和应用这个重要的概念,使你的界面更加灵活和美观。原创 2024-07-23 14:01:32 · 721 阅读 · 0 评论 -
在iOS应用中如何更优雅的使用的导航栏(UINavigationBar)
那么上面系统导航栏存在的问题,该怎么解决呢?其实系统提供的导航栏本身也可以解决这些问题,它的返回按钮可以重新设置,它的背景颜色也可以根据不同的视图控制器进行修改,TabBar也可以根据页面的层级进行手动隐藏和显式,但是这需要写很多的代码,很多的重复代码。而且在实际开发中,我们往往不会采用这种方式,毕竟费力不讨好。那么该如何设置导航导航了,才能更优雅的解决这些问题呢?这时候自定义导航栏就该登场了。/// 标题didSet {/// 是否显示返回按钮didSet {/// 返回点击回调。原创 2024-07-23 09:23:34 · 856 阅读 · 0 评论