如何在Objective-C类中使用SnapKit的view.snp.xxx语法?
在Objective-C中使用SnapKit的正确方式
你遇到的问题其实是因为SnapKit的view.snp属性是Swift专属的扩展属性,并没有暴露给Objective-C,所以直接在OC里用点语法访问view.snp肯定会报错。不过别担心,SnapKit本身提供了Objective-C的兼容API,你只需要换一种写法就行。
正确操作步骤:
- 确保已经通过CocoaPods正确安装SnapKit,Podfile配置无误且执行过
pod install。 - 在你的Objective-C文件(比如
TreeView.m)中,直接导入SnapKit的OC专属头文件:
(不需要导入#import <SnapKit/SnapKit.h>SnapKit-Swift.h,这个文件是用来让OC访问你自己编写的Swift代码的,对调用SnapKit的OC接口没用) - 使用OC风格的语法调用约束方法,示例代码如下:
// 给目标视图添加约束 [yourTargetView snp_makeConstraints:^(SNPConstraintMaker *make) { make.top.equalTo(self.containerView).offset(20); make.left.right.equalTo(self.containerView); make.height.equalTo(@150); }];
补充说明:
SnapKit的OC API和Swift API是一一对应的,常用方法的对应关系如下:
- Swift写法:
view.snp.makeConstraints→ OC写法:[view snp_makeConstraints:] - Swift写法:
view.snp.updateConstraints→ OC写法:[view snp_updateConstraints:] - Swift写法:
view.snp.remakeConstraints→ OC写法:[view snp_remakeConstraints:]
按照这种方式编写代码,就能正常在Objective-C类里使用SnapKit的约束能力了!
内容的提问来源于stack exchange,提问作者hopy
相关产品推荐
相关产品推荐

