这款 iOS 开源库收藏起来,肯定用得上

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

作者丨小集

来源丨小集(ID:zsxjtip)

上周推荐了一款 flutter 开源图表库,这次我们同样推荐一款图表库,不过是 SwiftUI 版本的。

自 2019 年苹果推出 SwiftUI 以来,虽然 SwiftUI 在 iOS UI 开发上还未成为主流,但社区对 SwiftUI 的期待还是蛮大的。各类 SwiftUI 开源库也不断涌现。而在许多工具类应用中,图表又是经常出现的一种展现形式。今天推荐的这款 SwiftUICharts https://github.com/willdale/SwiftUICharts 开源库,可以适用于 macOS、iOS、watchOS 和 tvOS,并具有内置的辅助功能和本地化功能。

这款开源库支持多种线性图、饼图:

Line Chart

9aaccbb295c4701c7d702366201af387.png

LineChart(chartData: LineChartData)

3bc726d1277aac6fe3bc124fe66da9c7.png

FilledLineChart(chartData: LineChartData)

70224d3b4912863cc979ce2ced7fbf86.png

MultiLineChart(chartData: MultiLineChartData)

c815ac01092aab7695582bf4dd1cc7aa.png

RangedLineChart(chartData: RangedLineChartData)

Bar Charts

4070e7367abcb59ccd15d9f97c92d4ab.png

BarChart(chartData: BarChartData)

2da1c2b3952fae14b78a1d45405956b5.png

RangedBarChart(chartData: RangedBarChartData)

4c79dc7f29d9bf9ad2fc58ea4bb1b5e9.png

GroupedBarChart(chartData: GroupedBarChartData)

4343ca43edae1b76cda3c83d00b1f4a5.png

StackedBarChart(chartData: StackedBarChartData)

Pie Charts

59171707187bbb73251f737e4fa05a08.png

PieChart(chartData: PieChartData)

cbc57e289b01adf463aff9279c4919fa.png

DoughnutChart(chartData: DoughnutChartData)

另外,这款开源库还提供了丰富的修饰符,以对图表做各类美化加强。

整体使用也很简单,以下是一个实例

struct LineChartDemoView: View {
    
    let data : LineChartData = weekOfData()
    
    var body: some View {
        VStack {
            LineChart(chartData: data)
                .pointMarkers(chartData: data)
                .touchOverlay(chartData: data, specifier: "%.0f")
                .yAxisPOI(chartData: data,
                          markerName: "Step Count Aim",
                          markerValue: 15_000,
                          labelPosition: .center(specifier: "%.0f"),
                          labelColour: Color.black,
                          labelBackground: Color(red: 1.0, green: 0.75, blue: 0.25),
                          lineColour: Color(red: 1.0, green: 0.75, blue: 0.25),
                          strokeStyle: StrokeStyle(lineWidth: 3, dash: [5,10]))
                .yAxisPOI(chartData: data,
                          markerName: "Minimum Recommended",
                          markerValue: 10_000,
                          labelPosition: .center(specifier: "%.0f"),
                          labelColour: Color.white,
                          labelBackground: Color(red: 0.25, green: 0.75, blue: 1.0),
                          lineColour: Color(red: 0.25, green: 0.75, blue: 1.0),
                          strokeStyle: StrokeStyle(lineWidth: 3, dash: [5,10]))
                .averageLine(chartData: data,
                             strokeStyle: StrokeStyle(lineWidth: 3, dash: [5,10]))
                .xAxisGrid(chartData: data)
                .yAxisGrid(chartData: data)
                .xAxisLabels(chartData: data)
                .yAxisLabels(chartData: data)
                .infoBox(chartData: data)
                .headerBox(chartData: data)
                .legends(chartData: data, columns: [GridItem(.flexible()), GridItem(.flexible())])
                .id(data.id)
                .frame(minWidth: 150, maxWidth: 900, minHeight: 150, idealHeight: 250, maxHeight: 400, alignment: .center)
        }
        .navigationTitle("Week of Data")
    }
}

当然,这款 SwiftUI 图表库目前在 Github 上并不是 star 最多的,star 数是 350+,另一款由 mecid 开源的 SwiftUI 图表库 https://github.com/mecid/SwiftUICharts 目前 star 数有 1.1k,以下是图例:

bf7d8d6b46d6c089795204bfbf97a72d.png

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

6f5764c68a0c0237f9bd98175fbd15b4.png

点击👆卡片,关注后回复【面试题】即可获取

在看点这里6ff15b90b1744f1df619762b06b30a34.gif好文分享给更多人↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值