IOS 06 OC调用Swift第三方框架
前面文章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.h"
@interface ViewController ()<ChartViewDelegate>
@property (weak, nonatomic) IBOutlet LineChartView *chartView;
@end
@implementation ViewController
- (void)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.h"
@interface ViewController ()<ChartViewDelegate>
@property (weak, nonatomic) IBOutlet LineChartView *chartView;
@end
@implementation ViewController
- (void)viewDidLoad {
;
// Do any additional setup after loading the view.
//显示一个折线图
//要显示的数据,例如:模拟爱学啊1~6月份,收入金额
NSArray *datas = @[@30,@40,@80,@70,@20,@20,@30];
NSMutableArray *array = ;
for (int i=0; i<datas.count; i++) {
//创建ChartDataEntry对象并将每个点对应的值与x轴 y轴进行绑定
//x就是月份,y就是值
ChartDataEntry *entry = [ initWithX:i+1 y: intValue]];
;
}
//创建一个集合并为这个集合赋值 label的值可为空
LineChartDataSet *set = [ initWithEntries:array label:@"收入金额"];
//创建容器
LineChartData *chartData = [ initWithDataSet:set];
self.chartView.data = chartData;
//以动画的方式绘制折线,动画持续2.5秒
;
}
@end
增加折线图框架署理方法
//
//ViewController.m
//OCUseSwiftTest
//
//Created by jin on 2024/8/16.
//
#import "ViewController.h"
//导入桥接文件
#import "OCUseSwiftTest-Bridging-Header.h"
#import "OCUseSwiftTest-Swift.h"
@interface ViewController ()<ChartViewDelegate>
@property (weak, nonatomic) IBOutlet LineChartView *chartView;
@end
@implementation ViewController
- (void)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 = ;
for (int i=0; i<datas.count; i++) {
//创建ChartDataEntry对象并将每个点对应的值与x轴 y轴进行绑定
//x就是月份,y就是值
ChartDataEntry *entry = [ initWithX:i+1 y: intValue]];
;
}
//创建一个集合并为这个集合赋值 label的值可为空
LineChartDataSet *set = [ initWithEntries:array label:@"收入金额"];
//创建容器
LineChartData *chartData = [ initWithDataSet:set];
self.chartView.data = chartData;
//以动画的方式绘制折线,动画持续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第三方框架。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]