APExtensions
一组有用的扩展、控制器和协议
示例
要运行示例项目,请克隆仓库,然后首先从示例目录运行 pod install。
安装
Swift 包管理器
- 在 Xcode 中选择
文件>添加包... - 将以下内容复制并粘贴到搜索中:
https://github.com/APUtils/APExtensions ‼️ 确保选中最高到下一个主版本并将13.0.0放入下限。Xcode 存在一个错误,它默认不选择高于 9.0.0 的版本‼️ - 点击
添加包 - 选择
APExtension并点击添加包
CocoaPods
APExtensions 可通过 CocoaPods 获取。要安装它,只需将以下行添加到 Podfile 中
pod 'APExtensions', '~> 13.0'可用的子规范:Core、Storyboard、ViewModel。子规范的示例 Podfile
pod 'APExtensions/Core', '~> 13.0'
pod 'APExtensions/Storyboard', '~> 13.0'
pod 'APExtensions/ViewModel', '~> 13.0'Carthage 已弃用
请查看官方指南
Cartfile
github "APUtils/APExtensions" "carthage-old"
安装命令:carthage bootstrap
您应该在稍后将其中的 APExtensions 和 RoutableLogger 框架添加到项目中。
使用 XCFrameworks 的 Carthage 已弃用
请查看官方指南
Cartfile
github "APUtils/APExtensions" ~> 13.0
安装命令:carthage bootstrap --use-xcframeworks
您应该在稍后将其中的 APExtensions 和 RoutableLogger 框架添加到项目中。
使用
更详细信息,请参阅文档。
核心
全局工具和调试方法、控制器、协议以及大量的默认类扩展。更多详情请参阅DOCS。
ViewModel
为视图添加ViewModel结构体和.configure(vm:)方法,使其易于且稳健地配置。
ViewState
已迁移到https://github.com/APUtils/ViewState
Storyboard
扩展了可以通过Storyboard配置的默认属性。
NSLayoutConstraint:
fitScreenSize用于根据屏幕尺寸调整约束常量。*onePixelSize用于使约束为1像素大小
UIButton:
fitScreenSize用于根据屏幕尺寸调整字体大小。*lines用于更改标题标签的最大行数
UIImageView:
fitScreenSize用于根据屏幕尺寸调整图片大小。*localizableImageName用于使用本地化特定的图片。您可以将图片命名为image_en、image_ru、image_fr等,在localizableImageName字段中放入image,并确保您将本地化的_en转换为_fr以进行法国本地化,_ru以进行俄罗斯等本地化。
UILabel:
fitScreenSize用于根据屏幕尺寸调整字体大小。*
UIScrollView:
avoidTopBars用于设置contentInset.top为64avoidTabBar用于设置contentInset.bottom为49
UITextView:
fitScreenSize用于根据屏幕尺寸调整字体大小。*
UIView:
borderColor用于设置边框颜色borderWidth用于设置边框宽度borderOnePixelWidth用于使边框为1像素宽度cornerRadius用于设置圆角半径shadowColor用于设置阴影颜色shadowOffset用于设置阴影偏移量shadowOpacity用于设置阴影不透明度shadowRadius用于设置阴影半径shadowApplyPath用于将视图边界矩形作为阴影路径应用。对于不透明视图,这大大提高了性能。
UIViewController:
hideKeyboardOnTouch用于在触摸外部时隐藏键盘
说明
假设布局是为最大的屏幕尺寸制作的(iPhone 6+、6s+、7+等),因此在较低分辨率的屏幕上,主题将按比例减少。
可占用空间
Occupiable 协议
OptionalType
OptionalType 协议
贡献
任何形式的贡献都十分欢迎!您可以通过在GitHub提交拉取请求和问题来进行贡献。
作者
Anton Plebanovich,[email protected]
许可证
APExtensions遵照MIT许可证提供。有关更多详细信息,请参阅LICENSE文件。







