使用 cocoapods-0.37.2 以下是我的Podfile
:
platform :ios, "8.0"
use_frameworks!
pod "GoogleMaps"
pod 'FontAwesomeKit'
pod 'PureLayout'
我正在尝试在我的.swift文件中导入PureLayout
,如下所示:
import PureLayout
class ViewController: UIViewController {
...
但我得到错误:
没有这样的模块'PureLayout'
为什么???我认为Cocoapods在使用-Bridging-Header.h
?
use_frameworks!
答案 0 :(得分:2)
我没有使用use_framework
选项,但我在Swift中使用PureLayout和CocoaPods没有问题。
pod 'PureLayout'
。<Your Module>-Bridging-Header.h
文件。我添加了一行#import "PureLayout.h"
。我还更新了目标构建设置,以根据说明输入桥接头文件名。import PureLayout
。如你所说,它会给我一个错误。自动布局调用将起作用,因为它是通过桥接头定义的。一个侧面点 - 如果您将桥接头文件添加到其构建设置,则测试目标将无法编译。因此,请确保在目标而非项目级别上完成桥接标头更新。
我猜PureLayout github页面中的当前README有点过时了,因为它当前要求你在.swift文件中执行import PureLayout
。我也在this README enhancement issue添加了评论。
答案 1 :(得分:1)
override func viewDidLayoutSubviews() {
self.searchController.searchBar.sizeToFit()
}
语句放入,获取错误import PureLayout
声明放回这在使用外部框架时已经很常见了。
答案 2 :(得分:1)
spacemonkey 的方法适用于我。在这种情况下,您甚至不需要-Bridging-Header.h
个文件。
对于FontAwesomeKit,由于它包含一些资源文件( xx.ttf , xx.otf 等),您应该将此文件添加到项目中以使其工作。如下面的节目:
清理项目并重新编译,然后就完成了。
以下是我的演示:
import FontAwesomeKit
import ChameleonFramework
import SnapKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let iconSize : CGFloat = 128;
let codeIcon = FAKFontAwesome.codepenIconWithSize(iconSize);
imageView.image = codeIcon.imageWithSize(CGSizeMake(iconSize, iconSize));
view.backgroundColor = UIColor.flatGreenColorDark();
}
}
PS。由于您使用swift,因此SnapKit布局框架可能比PureLayout更合适。