0%

2.1 Beta 1 Update on 2022/10/09

Changes:

  • [New] Compatible with Xcode 14 and Device target 16.0.
  • [New] Support high refresh rate if new device can enable it.
  • [New] Theme applied for Navigation bar, Button, ModalDialog and SVProgressHUD.
  • [New] EFUIKit now can config in a storyboard, see a demo in EFUIKitTest.storyboard.
  • [Improved] Navigation bar translucent now applied correct if you set NO. ModalDialog also applied if it have one.
  • [Improved] Navigation bar debug background color now display correct.
  • [Fixed] Navigation bar background color now display correct above iOS 15 with out storyboard or code change.
    阅读全文 »

iOS中在弹出的控制器的导航栏自动显示取消按钮以及自定义 Enable and change the custom cancel button follow these ways here:

自动显示默认的取消按钮的方法 A way to enable the normal appearance of custom cancel button

这里无需代码,将控制器作为弹出的导航控制器的根控制器即可。No more code here, use the view controller as the root controller of the navigation controller which present modally.

阅读全文 »

iOS导航栏自定义返回一行代码搞定 Custom back button of navigation bar just type a line code in iOS

启用默认的自定义返回按钮 Enable the normal appearance of custom back button

1
2
3
4
5
6
7
- (void)viewDidLoad {
[super viewDidLoad];

// 要启用自定义返回按钮,在基于 EFBaseViewController的控制器
// 的 -viewDidLoad添加这行代码即可
self.useCustomBack = YES;
}
阅读全文 »

极致框架为什么不采用分类而是继承父类的方式?

理由1: 属性是 Objective-C的一项特性,用于封装对象中的数据,会在编译时自动向类新增实例变量,适应这一语言的高度动态的特性。继承父类,除了可以直接使用父类的属性,还能定义专有属性。但不应该在分类定义属性,这里的分类指的是狭义上开发者创建的第三方分类,分类不支持向类中新增实例变量,Objective-C还提供了一种叫“class-continuation”的分类,只有在这种分类中添加属性才会被支持。类所封装的数据应该全部在主接口(.h和“class-continuation”分类)中,这里是唯一能够定义实例变量的地方,属性只是定义实例变量及相关存取方法的“语法糖”,至于分类机制,则应将其理解为一种手段,目标在于扩展类的功能,将类的实现各种功能的方法分散在各分类中,更易于维护,而非封装数据。

经常见到的“class-continuation”分类

1
2
3
@interface ClassName ()

@end

理由2: 分类方法容易覆盖主接口中的方法,即使通过修改方法命名也无法规避这一问题,对 SDK中的类添加分类方法,将导致所有使用了该类意外调用分类方法,出现意外的问题,还不好排查出现问题的原因,于是需要大量的分类维护工作来规避这一问题,因此尽量避免对 SDK中的类添加方法,如果必须这么做,别忘了时时维护你的分类。

你有没有遇到过断点在 QMUI或者 SD-Autolayout源码中,却找不到问题所在的情况?

我也要提问

如何知道框架当前版本和iOS系统的兼容性?

一般来说每个极致框架版本都有最低支持的iOS版本,并会随着iOS大版本更新而更新以兼容。较新的框架大版本最低支持的iOS版本即为上一个框架大版本的支持上限(不含),以框架大版本最低支持的iOS版本开始,最多支持3个iOS大版本。
版本1.5 支持 iOS9-11
版本2.0 支持 iOS12-14

我也要提问

适合什么人群?

极致框架经过精心设计,将很多基础功能简化,隐藏了实现,对新手友好,适合着手新项目但项目周期紧张需要迅速建立项目基本框架,全身心投入到业务需求开发,而不是把精力花在实现基础需求上,想看看极致框架如何实现基础需求的,完全开源。

我也要提问

2016.9 萌生自己建立iOS项目基本框架的想法。
2017.8 初个框架版本的目录与文件建立,最早确立框架由项目基本框架、核心UI以及核心工具组成。
2018.4 初个框架版本基本完成,开始集成自定义UI,初个框架版本的目录与文件首次公开。极致框架中英文命名确认。
2018.6 项目基本框架拆分为核心框架和项目基本框架,核心框架最终将输出为静态框架,对开发者隐藏实现仅需专注业务需求实现,项目基本框架提供项目的统一配置和业务集成。
2018.7.8 极致框架1.1正式版输出。
2018.7.25 极致框架1.1正式版首次公开发布,新增了 App演示内容部分。
2019.5 极致框架官网 www.xfmwk.com 开通访问。

2019.9.9 极致框架1.5经典版发布。

2019.9.30 极致框架1.5最终版发布。2.0版本立项。

2019.12.6 极致框架1.5最终版发布第1次更新,建立开发文档。

2020.8.30 极致框架2.0发布,开发文档建立版本维护机制。

2020.11.7 极致框架1.5最终版发布第2次更新,极致框架首次全面开源。

2021.3 极致框架2.0最终版基本完成,确立了最终版的目标,以及更新包含的内容。

2021.7.5 极致框架2.0最终版发布,兼容Xcode12,更新了 App演示内容部分。

感谢一路相伴!我们始终坚持全面开源!免费使用*!自愿打赏!