AxcBedrock 1.1.4

AxcBedrock 1.1.4

axclogo维护。



  • Axclogo

AxcBedrock

language Build Status MIT License Platform CocoaPods Axc

语言

简介

bedrock
AxcBedrock是一个基本的工具库,为iOS和macOS应用程序提供常用的功能和扩展。

就像Minecraft中的Bedrock一样,作为世界的基础,它承载了所有的方块。

将来,如果时间允许,它将继续支持Dart等语言(😄)点击此处查看Dart版本(仍在开发中..)

主要思想是在开发中建立一致性,不仅限于一个平台或一种语言,连接开发者的习惯,统一所有底层API或简小操作的调用。

在功能上,它与SwifterSwift相似,主要区别在于调用和使用。

例如,SwifterSwift基于直接扩展函数,但由于在一个大型项目中扩展太多,在调用API和查找API时,Xcode的自动完成可能会引起卡顿,并且可能难以找到所需的API。

因此,AxcBedrock 基于命名空间模式封装,需要在调用位置添加后缀".axc",然后可以搜索相应的API。

我不能说有很多项目,但在我参与的项目中,这种解决方案真正解决了代码补全逐渐渗入的问题。它还具有良好的美学,且不会与主项目的扩展名发生命名冲突。

安装

您可以使用 CocoaPods 快速安装 AxcBedrock。

Podfile

pod 'AxcBedrock'

或者,您可以将源代码手动添加到项目中。

使用方法

在 AxcBedrock 中使用功能和扩展非常简单。只需将 AxcBedrock 导入到您的项目中,即可开始使用它。

格式/规范

所有API使用遵循此命名约定

// Call instance function:
xxxx.axc.xxxx
// Call class function:
Xxxx.Axc.Xxxx

这样,您可以轻松访问所需的所有功能和扩展。

示例

示例通话

这是一个简单的示例,展示了如何在AxcBedrock中使用功能

import AxcBedrock

let myString = "hello world"
let testString = myString.axc.keepPrefix(count: 3)
print(testString) // "hel"

文本属性操作

let attText = "这是一段富文本".axc.makeAttributed { make in
    make.set(font: 15, range: 0...1)
.set(foregroundColor: "FFBBAA", range: NSRange(location: 0, length: 4))
}
iOS性能 MacOS性能
bedrock
bedrock

请注意,AxcUnifiedXXX类是通用类。例如,上例中设置字体和颜色的类是

AxcUnifiedFont和AxcUnifiedColor。

这些类可互换使用,并且可以写成以下方式

AxcUnifiedFont

make.set(font: 15.axc.uiFont, range: 0...1)
make.set(font: 15.4, range: NSRange(location: 0, length: 4))

make.set(font: UIFont.systemFont(ofSize: 15), range: 0...1)
make.set(font: UIFont.systemFont(ofSize: 15), range: NSRange(location: 0, length: 4))

AxcUnifiedColor

.set(foregroundColor: "FFBBAA", range: 1...2)
.set(foregroundColor: "FFBBAA", range: NSRange(location: 0, length: 4))

.set(foregroundColor: UIColor.red, range: 1...2)
.set(foregroundColor: UIColor.red, range: NSRange(location: 0, length: 4))

.set(foregroundColor: 0xFFBBAA, range: 1...2)
.set(foregroundColor: 0xFFBBAA, range: NSRange(location: 0, length: 4))

当然,也支持UIColor和NSColor,但必须在相应平台上使用。

贝塞尔操作

var linesHeight: [AxcUnifiedNumber] = []
for i in 0...1000 {
    if (arc4random() % 2) == 0 {
        linesHeight.append(80)
    }else{
        linesHeight.append(-80)
    }
}
let bz = UI/NS BezierPath.Axc.CreateRadiateCircle(center: center,
                                                  radius: radius,
                                                  linesHeight: linesHeight,
                                                  clockwise: .clockwise,
                                                  startAngle: .direction(.left),
                                                  openingAngle: 0,
                                                  isReversing: false)
shapeLayer.path = bz.axc.cgPath
iOS性能 MacOS性能
bedrock
bedrock

即使在跨平台上,也只需要一个代码库。

对于AxcBedrock中可用函数和扩展的完整列表,请参阅代码或导出Swift-Docc文档。

问题

如果在使用 AxcBedrock 时遇到任何问题或错误,请提交 GitHub 上的问题。

如果您在使用 API 时对任何内容不确定或不清,也可以在 GitHub 上提交问题。

连接

邮箱:[email protected]

QQ:532432339

贡献

AxcBedrock 是开源的,感谢所有贡献。如果您发现任何错误或希望改进库,请提交一个 pull request。

目前我需要帮助~ 如果您有任何想法,请联系我!或者提交一个 PR,谢谢!Orz

需要帮助的任务

  • 改进单元测试部分
  • 支持 Swift Package Manager
  • 如果有需要优化的地方,请提出优化项
  • 如果您想一起开发 Bedrock 的 Dart 版本,请联系我!

授权许可

AxcBedrock 采用 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。

如本仓库对您有帮助或在任何方面启发了您,请给它一个 Star —— 谢谢♪(・ω・)ノ⭐️。 ~ ~ 感谢♪(・ω・)ノ