OC 中 使用 swfit 代码.

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.

  1. 在控制器中加上
    self.automaticallyAdjustsScrollViewInsets = NO
    当automaticallyAdjustsScrollViewInsets为YES时,它会找view里的scrollView,并设置scrollView的contentInset为{64, 0, 0, 0}。如果你不想让scrollView的内容自动调整,将这个属性设为NO(默认值YES)。

2.手动调整itemSize的大小
也有可能是, collectionView的itemSize 长或者宽 大于了 colloectionview. 调整一下就好了

现在正在看的文章:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,283评论 4 61
  • 唯愿时光不在逼她,好姑娘永远衣襟戴花
    ByJing鲸阅读 197评论 1 1
  • 我与他真的好久不见,久到八、九年,久到听说我们的同班小学同学有的已经当上父母,久到我们再也回不去那遥远的小屁孩...
    阿拉米琪家阅读 335评论 3 4