公司网站开发创业,wordpress文章采集助手,wordpress 站群会员,wordpress调用作者前面文章05讲的是在OC项目中#xff0c;调用Swift代码#xff0c;而在真实开发过程中#xff0c;在OC项目中调用Swift第三方框架场景用的是非常多的#xff0c;所以我们也了解在OC项目如何使用Swift写的三方框架。
实现流程#xff1a;
1、OCUseSwiftTest#xff1b;在…前面文章05讲的是在OC项目中调用Swift代码而在真实开发过程中在OC项目中调用Swift第三方框架场景用的是非常多的所以我们也了解在OC项目如何使用Swift写的三方框架。
实现流程
1、OCUseSwiftTest在上一篇文章的基础上通过Pod安装Swift第三方框架例如Charts框架他是一个使用Swift语言编写的图表框架同时他是兼容OC调用的才能在OC代码中调用所以并不是所有Swift框架都能在OC中使用这一步是正常使用。
2、在桥接文件中导入第三方Swift框架。
3、最后就能正常使用Swift框架中的内容了。
添加依赖
还不了解如何使用 CocoaPods 管理依赖的建议先看前面的文章IOS 01 CocoaPods 安装与使用
#图表框架
#https://github.com/danielgindi/Charts
pod Charts
然后通过命令 pod install 安装依赖。
注意本文中的Charts框架不是说一定要用该框架只是该框架正好能在OC中调用同时在iOS开发中也挺常用所以顺带了解一下它的使用。
在桥接文件中导入
OCUseSwiftTest-Bridging-Header.h
//在这个文件导入第三方Swift框架模块
import Charts;
同样其他的Swift框架也要在这里导入。
使用Swift框架
首先通过可视化创建一个View控件class指向LineChartView然后关联到代码逻辑文件ViewController.m
//
// ViewController.m
// OCUseSwiftTest
//
// Created by jin on 2024/8/16.
//#import ViewController.h//导入桥接文件
#import OCUseSwiftTest-Bridging-Header.h
#import OCUseSwiftTest-Swift.hinterface ViewController ()ChartViewDelegate
property (weak, nonatomic) IBOutlet LineChartView *chartView;endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.}end显示一个折线图
//
// ViewController.m
// OCUseSwiftTest
//
// Created by jin on 2024/8/16.
//#import ViewController.h//导入桥接文件
#import OCUseSwiftTest-Bridging-Header.h
#import OCUseSwiftTest-Swift.hinterface ViewController ()ChartViewDelegate
property (weak, nonatomic) IBOutlet LineChartView *chartView;endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.//显示一个折线图//要显示的数据例如模拟爱学啊1~6月份收入金额NSArray *datas [30,40,80,70,20,20,30];NSMutableArray *array [NSMutableArray array];for (int i0; idatas.count; i) {//创建ChartDataEntry对象并将每个点对应的值与x轴 y轴进行绑定//x就是月份y就是值ChartDataEntry *entry [[ChartDataEntry alloc] initWithX:i1 y:[datas[i] intValue]];[array addObject:entry];}//创建一个集合并为这个集合赋值 label的值可为空LineChartDataSet *set [[LineChartDataSet alloc] initWithEntries:array label:收入金额];//创建容器LineChartData *chartData [[LineChartData alloc] initWithDataSet:set];self.chartView.data chartData;//以动画的方式绘制折线动画持续2.5秒[_chartView animateWithXAxisDuration:2.5];
}end增加折线图框架代理方法
//
// ViewController.m
// OCUseSwiftTest
//
// Created by jin on 2024/8/16.
//#import ViewController.h//导入桥接文件
#import OCUseSwiftTest-Bridging-Header.h
#import OCUseSwiftTest-Swift.hinterface ViewController ()ChartViewDelegate
property (weak, nonatomic) IBOutlet LineChartView *chartView;endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.//显示一个折线图//设置代理通过他可以监听一些事件_chartView.delegate self;//要显示的数据例如模拟爱学啊1~6月份收入金额NSArray *datas [30,40,80,70,20,20,30];NSMutableArray *array [NSMutableArray array];for (int i0; idatas.count; i) {//创建ChartDataEntry对象并将每个点对应的值与x轴 y轴进行绑定//x就是月份y就是值ChartDataEntry *entry [[ChartDataEntry alloc] initWithX:i1 y:[datas[i] intValue]];[array addObject:entry];}//创建一个集合并为这个集合赋值 label的值可为空LineChartDataSet *set [[LineChartDataSet alloc] initWithEntries:array label:收入金额];//创建容器LineChartData *chartData [[LineChartData alloc] initWithDataSet:set];self.chartView.data chartData;//以动画的方式绘制折线动画持续2.5秒[_chartView animateWithXAxisDuration:2.5];
}/// 选中图表中数值
/// param chartView #chartView description#
/// param entry #entry description#
/// param highlight #highlight description#
-(void)chartValueSelected:(ChartViewBase *)chartView entry:(ChartDataEntry *)entry highlight:(ChartHighlight *)highlight{NSLog(选中图表中数值);
}/// 选中空白区域
/// param chartView #chartView description#
-(void)chartValueNothingSelected:(ChartViewBase *)chartView{NSLog(选中空白区域);
}/// 图表缩放
/// param chartView #chartView description#
/// param scaleX #scaleX description#
/// param scaleY #scaleY description#
-(void)chartScaled:(ChartViewBase *)chartView scaleX:(CGFloat)scaleX scaleY:(CGFloat)scaleY{NSLog(图表缩放);
}/// 图表移动
/// param chartView #chartView description#
/// param dX #dX description#
/// param dY #dY description#
-(void)chartTranslated:(ChartViewBase *)chartView dX:(CGFloat)dX dY:(CGFloat)dY{NSLog(图表移动);
}end至此完成了在OC项目中调用Swift第三方框架。