我如何在Objc项目中使用SnapKit?

时间:2018-05-20 11:20:47

标签: ios objective-c swift snapkit

我使用CocoaPods(Xcode 9.3.1和Swift 4.1)创建新项目,当然还在其中使用SnapKit。

我想使用第三方类TreeView,这个类是由Objc写的。

我如何在类TreeView中使用SnapKit ???

我尝试使用以下步骤但不能正常工作:

  1. 创建名为SnapKit-Bridging-Header.h的新文件

  2. 转到TreeView.m,导入头文件(注意:它以' -Swift'结尾):

    #import" SnapKit-Swift.h"

  3. 编译现在可以!我可以在TreeView.m文件中看到LayoutConstraint(在SnapKit中定义)和其他一些类

  4. 但是当我使用view.snp.xxx时,它会抱怨" Property' snp'没找到..."

  5. 所以我的问题是如何在ObjC文件中使用view.snp.xxx ???谢谢:))

1 个答案:

答案 0 :(得分:1)

Swift代码与Objective-C无法完全互操作。 您只能在Objective-C支持的桥接头中使用此类Swift元素。这个库需要Swift,它并不是说它支持Objective-C,所以你可能需要做额外的适应工作来支持它。

在iOS 9+中,您拥有与SnapKit一样易于使用的NSLayoutAnchor API (见https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html; https://cocoacasts.com/working-with-auto-layout-and-layout-anchors/; https://theswiftlibrary.com/the-simple-way-of-creating-constraints-in-code

此API易于使用且与Objective-C兼容。

如果您想支持iOS 8,可以使用this one之类的反向移植库。