在swift开发过程中我们难免会使用一些OC的开源库来辅助项目开发。这就涉及到OC和swift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用了OC的第三方库,今天就给大家介绍一下自己的使用过程。
一、导入第三方库
这里需要注意点,我使用pod导入OC的第三方库SDCycleScrollView,然后进行配置出现找不到SDCycleScrollView的错误,最后还是直接复制SDCycleScrollView到项目中才解决的问题,这一点还不知道为什么,希望清楚的这个问题的同学指正。
2019.11.19日修正
是我导入的方式不正确,在pod导入第三方库的时候会自动生成framework库,我们需要导入这个库的头文件#import <SDCycleScrollView/SDCycleScrollView.h>,而不是直接#import "SDCycleScrollView.h",这样问题也就完美的解决了。
解决方法来源:小马哥swift学习视频。他山之石,可以攻玉。
二、创建头文件
创建一个头文件,然后将SDCycleScrollView.h文件导入到头文件中。
创建头文件
导入头文件
三、配置桥接头文件
在Build Setting里面搜索bridging,然后向Objective-C Bridging Header中添加我们创建的头文件的地址,如下图:
配置头文件
四、使用OC方法
配置完毕之后,OC的方法会被转化成swift的调用方法,我们只需要按照swift的调用方法使用即可。
let imageNames = ["1.png", "2.png", "3.png", "4.png","5.png"]
let cycleScrollView = SDCycleScrollView.init(frame: CGRect (x: 0, y: 0, width: self.view.frame.size.width, height: 200), shouldInfiniteLoop: true, imageNamesGroup: imageNames)
cycleScrollView?.delegate = self
self.view.addSubview(cycleScrollView!)
五、OC代理方法的使用
第三方的方法会自动转成swift的方法,所以直接使用swift的方法调用就可以啦!
/*
1、按照swift的代理执行方式来就可以。
*/
extension RecommendVC : SDCycleScrollViewDelegate{
//图片滚动回调
func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didScrollTo index: Int) {
print("图片滚动回调\(index)")
}
//点击图片回调
func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didSelectItemAt index: Int) {
print("点击图片回调\(index)")
}
}