objective-c - 如何在我的 Swift 程序中使用来自 Github 的 Objective-C 代码?
问题描述
问题总结
我正在用 Swift 构建一个日历应用程序,我想从这个 repo 中的 UI 开始:https ://github.com/erichoracek/MSCollectionViewCalendarLayout
这个 repo 是用 Objective-C 编写的。
但是,我不确定如何使用 Swift 在此 Github 存储库之上构建。
我想在我的日历中使用的 UI 示例:
我试过的
- 我用 CocoaPods 成功安装了这个库。
- 我跑了
$pod install
。 - 我成功地跑了
import MSCollectionViewCalendarLayout
。 - 我在我的故事板上添加了一个新
CollectionViewController
的,并将其分配给我的自定义CalendarViewController
类 - 我尝试(愚蠢地)使用下面的代码
class CalendarViewController
,但我收到此错误消息:
"Cannot assign value of type 'MSCollectionViewCalendarLayout.Type' to type 'UICollectionViewLayout'"
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.collectionViewLayout = MSCollectionViewCalendarLayout
}
我知道我可能必须使用
self.collectionView.register(cellClass:forCellWithReuseIdentifier:)
...但是如何使用?Github 中有一些名为“Usage”的文档,但不幸的是,我仍然不知道如何使用它:
还包括一个 Example.xcworkspace,用 Objective-C 编写。我已经经历了大部分。它们包括它们使用的每个元素的标头 (.h) 和实现 (.m) 文件。
这里有一个切线问题的好答案:https ://stackoverflow.com/a/45540130/3979651 ,但这并不能直接解决我的问题。我想要
import
这个 Cocoapods 库,而不是在 Objective-C 文件之上编写。但我也不完全确定这是否是正确/最好的方法。
问题总结
- 如何将我的链接链接
CollectionViewController
到它以MSCollectionViewCalendarLayout
使其具有相同的 UI? - 在这种情况下我该如何使用
self.collectionView.register(cellClass:forCellWithReuseIdentifier:)
? - 我是否必须像示例中那样为每个元素编写一个新文件?(事件单元格、日列标题等)
- 或者,将示例元素文件(.h 和 .m)复制并粘贴到我的应用程序中会更容易吗?如果是这样,我如何在这些文件之上构建?
我想完成什么
我想像MSCollectionViewLayout
库一样导入,将其附加到我自己的CollectionViewControllers
,并在此基础上构建我自己的功能,所有这些都使用 Swift。
谢谢大家!希望我可以在这里向 repo 的 README.md 文件提交正确的答案。
解决方案
推荐阅读
- java - 处理来自 WebSocket 消息的 MethodArgumentNotValidException
- networking - 如何配置 Cups Linux 服务器以仅允许从特定 IP 进行打印?
- sql-server - 使用 Azure 数据工厂中的实例名称连接到本地 SQL Server 实例
- wpf - 在 xceed 工具包 ColorPicker 中隐藏向下箭头
- javascript - 无法在表单提交成功事件 AMP 上设置状态
- scala - Scala Slick 值 foreach 不是
- python - 如何修复 django 管理界面上的错误
- selenium - 为什么我在无头模式下运行时没有出现浏览器?
- prestashop - 如何在 prestashop 的订单视图页面管理员中找到“重新发送电子邮件”的负责代码?
- python - 有没有办法打印 OSC 收到的所有信息?