IOS 06 OC调用Swift第三方框架

打印 上一主题 下一主题

主题 1035|帖子 1035|积分 3105

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
前面文章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 安装与利用
  1. #图表框架
  2. #https://github.com/danielgindi/Charts
  3. pod 'Charts'
复制代码
然后通过命令 pod install 安装依靠。
注意:本文中的Charts框架,不是说一定要用该框架,只是该框架恰好能在OC中调用,同时在iOS开辟中也挺常用,以是顺带了解一下它的利用。
在桥接文件中导入

OCUseSwiftTest-Bridging-Header.h
  1. //在这个文件导入第三方Swift框架模块
  2. @import Charts;
复制代码
同样,其他的Swift框架,也要在这里导入。
利用Swift框架

首先通过可视化创建一个View控件,class指向LineChartView,然后关联到代码逻辑文件ViewController.m
  1. //
  2. //  ViewController.m
  3. //  OCUseSwiftTest
  4. //
  5. //  Created by jin on 2024/8/16.
  6. //
  7. #import "ViewController.h"
  8. //导入桥接文件
  9. #import "OCUseSwiftTest-Bridging-Header.h"
  10. #import "OCUseSwiftTest-Swift.h"
  11. @interface ViewController ()<ChartViewDelegate>
  12. @property (weak, nonatomic) IBOutlet LineChartView *chartView;
  13. @end
  14. @implementation ViewController
  15. - (void)viewDidLoad {
  16.     [super viewDidLoad];
  17.     // Do any additional setup after loading the view.
  18.    
  19.    
  20. }
  21. @end
复制代码
表现一个折线图

  1. //
  2. //  ViewController.m
  3. //  OCUseSwiftTest
  4. //
  5. //  Created by jin on 2024/8/16.
  6. //
  7. #import "ViewController.h"
  8. //导入桥接文件
  9. #import "OCUseSwiftTest-Bridging-Header.h"
  10. #import "OCUseSwiftTest-Swift.h"
  11. @interface ViewController ()<ChartViewDelegate>
  12. @property (weak, nonatomic) IBOutlet LineChartView *chartView;
  13. @end
  14. @implementation ViewController
  15. - (void)viewDidLoad {
  16.     [super viewDidLoad];
  17.     // Do any additional setup after loading the view.
  18.    
  19.    
  20.     //显示一个折线图
  21.     //要显示的数据,例如:模拟爱学啊1~6月份,收入金额
  22.     NSArray *datas = @[@30,@40,@80,@70,@20,@20,@30];
  23.     NSMutableArray *array = [NSMutableArray array];
  24.     for (int i=0; i<datas.count; i++) {
  25.         //创建ChartDataEntry对象并将每个点对应的值与x轴 y轴进行绑定
  26.             //x就是月份,y就是值
  27.         ChartDataEntry *entry = [[ChartDataEntry alloc] initWithX:i+1 y:[datas[i] intValue]];
  28.         [array addObject:entry];
  29.     }
  30.     //创建一个集合并为这个集合赋值 label的值可为空
  31.     LineChartDataSet *set = [[LineChartDataSet alloc] initWithEntries:array label:@"收入金额"];
  32.     //创建容器
  33.     LineChartData *chartData = [[LineChartData alloc] initWithDataSet:set];
  34.     self.chartView.data = chartData;
  35.     //以动画的方式绘制折线,动画持续2.5秒
  36.     [_chartView animateWithXAxisDuration:2.5];
  37. }
  38. @end
复制代码
增加折线图框架署理方法

  1. //
  2. //  ViewController.m
  3. //  OCUseSwiftTest
  4. //
  5. //  Created by jin on 2024/8/16.
  6. //
  7. #import "ViewController.h"
  8. //导入桥接文件
  9. #import "OCUseSwiftTest-Bridging-Header.h"
  10. #import "OCUseSwiftTest-Swift.h"
  11. @interface ViewController ()<ChartViewDelegate>
  12. @property (weak, nonatomic) IBOutlet LineChartView *chartView;
  13. @end
  14. @implementation ViewController
  15. - (void)viewDidLoad {
  16.     [super viewDidLoad];
  17.     // Do any additional setup after loading the view.
  18.    
  19.     //显示一个折线图
  20.     //设置代理,通过他可以监听一些事件
  21.     _chartView.delegate = self;
  22.     //要显示的数据,例如:模拟爱学啊1~6月份,收入金额
  23.     NSArray *datas = @[@30,@40,@80,@70,@20,@20,@30];
  24.     NSMutableArray *array = [NSMutableArray array];
  25.     for (int i=0; i<datas.count; i++) {
  26.         //创建ChartDataEntry对象并将每个点对应的值与x轴 y轴进行绑定
  27.             //x就是月份,y就是值
  28.         ChartDataEntry *entry = [[ChartDataEntry alloc] initWithX:i+1 y:[datas[i] intValue]];
  29.         [array addObject:entry];
  30.     }
  31.     //创建一个集合并为这个集合赋值 label的值可为空
  32.     LineChartDataSet *set = [[LineChartDataSet alloc] initWithEntries:array label:@"收入金额"];
  33.     //创建容器
  34.     LineChartData *chartData = [[LineChartData alloc] initWithDataSet:set];
  35.     self.chartView.data = chartData;
  36.     //以动画的方式绘制折线,动画持续2.5秒
  37.     [_chartView animateWithXAxisDuration:2.5];
  38. }
  39. /// 选中图表中数值
  40. /// @param chartView <#chartView description#>
  41. /// @param entry <#entry description#>
  42. /// @param highlight <#highlight description#>
  43. -(void)chartValueSelected:(ChartViewBase *)chartView entry:(ChartDataEntry *)entry highlight:(ChartHighlight *)highlight{
  44.     NSLog(@"选中图表中数值");
  45. }
  46. /// 选中空白区域
  47. /// @param chartView <#chartView description#>
  48. -(void)chartValueNothingSelected:(ChartViewBase *)chartView{
  49.     NSLog(@"选中空白区域");
  50. }
  51. /// 图表缩放
  52. /// @param chartView <#chartView description#>
  53. /// @param scaleX <#scaleX description#>
  54. /// @param scaleY <#scaleY description#>
  55. -(void)chartScaled:(ChartViewBase *)chartView scaleX:(CGFloat)scaleX scaleY:(CGFloat)scaleY{
  56.     NSLog(@"图表缩放");
  57. }
  58. /// 图表移动
  59. /// @param chartView <#chartView description#>
  60. /// @param dX <#dX description#>
  61. /// @param dY <#dY description#>
  62. -(void)chartTranslated:(ChartViewBase *)chartView dX:(CGFloat)dX dY:(CGFloat)dY{
  63.     NSLog(@"图表移动");
  64. }
  65. @end
复制代码
至此完成了在OC项目中调用Swift第三方框架。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表