本文介绍: 1、在 Build Settings 搜索 Packaging ,设置为 YES2、新建 LottieBridge.swift 文件,自动生成桥3、在 LottieBridge.swift 中,定义Swift类继承于OC类,声明或@objc,实现相关方法4、在OC代码中引用,调用Swift相关方法。
OC调用Swift方法
1、在 Build Settings 搜索 Packaging ,设置 Defines Module 为 YES
2、新建 LottieBridge.swift 文件,自动生成桥 ProductName-Bridging-Header.h
3、在 LottieBridge.swift 中,定义Swift类继承于OC类,声明 @objcMembers 或 @objc ,实现相关方法
import UIKit
import Lottie
// 所有方法/属性声明
@objcMembers class MyLottieView: UIView {
private let animationView = LottieAnimationView()
override init(frame: CGRect) {
super.init(frame: frame)
self.addSubview(animationView)
}
override func layoutSubviews() {
super.layoutSubviews()
animationView.frame = self.bounds
}
public func setLottieFromURL(_ url: URL?) {
if let url = url {
LottieAnimation.loadedFrom(url: url) { [weak self] (animation) in
self?.animationView.animation = animation
self?.play()
}
}
}
public func play() {
animationView.play()
}
}
// 单个方法/属性声明
@objc class MyLottieView: UIView {
private let animationView = LottieAnimationView()
override init(frame: CGRect) {...}
override func layoutSubviews() {...}
@objc public func setLottieFromURL(_ url: URL?) {...}
@objc public func play() {...}
}
4、在OC代码中引用 ProductName-Swift.h ,调用Swift相关方法
#import "ProductName-Swift.h"
- (void)swiftTest {
MyLottieView *lottieView = [[MyLottieView alloc] initWithFrame:CGRectMake(100, 100, 320, 320)];
[self.view addSubview:lottieView];
NSURL *url = [NSURL URLWithString:@"https://assets9.lottiefiles.com/packages/lf20_N0y2Nj.json"];
[lottieView setLottieFromURL:url];
}
Swift调用OC方法
1、在 ProductName-Bridging-Header.h 中加入OC的头声明
#import <YYKit/YYKit.h>
#import <AFNetworking/AFNetworking.h>
private func OCTest() {
let configuration = URLSessionConfiguration.default
_ = AFURLSessionManager(sessionConfiguration: configuration)
}
原文地址:https://blog.csdn.net/z119901214/article/details/131900040
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_14987.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。