OC 中 使用 swfit 代码.
- Build Setings
- defines module 设置为 YES
- product module name 设置为项目工程名字(一般默认就是项目工程名字)
在需要用到 swift 文件的 类中 引入文件 ProjectName-Swift.h
文件
> ProjectName-Swift.h
文件 是系统创建的, 在工程中找不到, 有时候也不会自动提醒, 要完全自己手打完整个文件名字.
OC 项目中 在 oc 文件中 使用 swift 三方库
要在 oc 项目中 引入文件
三方库名-Swift.h
文件, 这个文件是系统自动生成的.
这样就可以在 OC 文件中调用 swift 三方库的方法了, 系统会自动把swift 方法映射为 oc 方法.
不过, 某些swift 特性不能转化为 oc , 故 很多swift 方法不会映射为 oc 方法, 所以有一部分swfit方法 oc 文件不能使用
更多详细介绍看两篇文章
报错:
The behavior of the UICollectionViewFlowLayout is not defined because:
the item height must be less than the height of the UICollectionView minus the section insets top and bottom values, minus the content insets top and bottom values.
The relevant UICollectionViewFlowLayout instance is <KanbanCollectionViewHorizontalLayout: 0x7fa39960c8e0>, and it is attached to <UICollectionView: 0x7fa39a8ba000; frame = (0 0; 375 70); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x60800064fba0>; layer = <CALayer: 0x608000230800>; contentOffset: {0, 0}; contentSize: {187.5, 70}> collection view layout: <KanbanCollectionViewHorizontalLayout: 0x7fa39960c8e0>.
Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger.
- 在控制器中加上
self.automaticallyAdjustsScrollViewInsets = NO
当automaticallyAdjustsScrollViewInsets为YES时,它会找view里的scrollView,并设置scrollView的contentInset为{64, 0, 0, 0}。如果你不想让scrollView的内容自动调整,将这个属性设为NO(默认值YES)。
2.手动调整itemSize的大小
也有可能是, collectionView的itemSize 长或者宽 大于了 colloectionview. 调整一下就好了
现在正在看的文章: