Как я могу использовать код Objective C от Github в моей программе Swift? - PullRequest
0 голосов
/ 27 марта 2019

Краткое изложение проблемы

Я создаю приложение календаря в Swift, и я хотел бы начать с пользовательского интерфейса в этом репо: https://github.com/erichoracek/MSCollectionViewCalendarLayout

Этот репо написан на Objective-C.

Однако я не уверен, как построить поверх этого репозитория Github, используя Swift.

Пример пользовательского интерфейса, который я хотел бы использовать в своем календаре:

calendar ui

Что я пробовал

  • Я успешно установил эту библиотеку с CocoaPods.
  • Я побежал $pod install.
  • Я успешно побежал import MSCollectionViewCalendarLayout.
  • Я добавил новый CollectionViewController на свою раскадровку и назначил его своему обычному CalendarViewController классу
  • Я пытался (тупо) с кодом ниже в class CalendarViewController, но я получаю это сообщение об ошибке:

Screenshot of error message

"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 есть документация под названием "Использование", но, к сожалению, я все еще не знаю, как его использовать:

Screenshot of

  • Там также есть файл Example.xcworkspace, написанный на Objective-C. Я прошел большую часть этого. Они включают заголовочные файлы (.h) и файлы реализации (.m) для каждого элемента, который они используют.

    Screenshot of Example.xcworkspace

  • Здесь есть хороший ответ на касательную проблему: https://stackoverflow.com/a/45540130/3979651,, но это напрямую не решает мою проблему. Я бы хотел import эту библиотеку Cocoapods вместо того, чтобы писать поверх файлов Objective-C. Но я также не совсем уверен, что это правильный / лучший способ сделать это.

Краткое изложение вопросов

  1. Как связать мой CollectionViewController с MSCollectionViewCalendarLayout, чтобы он имел такой же интерфейс?
  2. Как мне использовать self.collectionView.register(cellClass:forCellWithReuseIdentifier:) в этом случае?
  3. Должен ли я писать новый файл для каждого элемента, как в примере? (Ячейка события, заголовок столбца дня и т. Д.)
  4. Или было бы проще просто скопировать и вставить файлы элементов примера (.h и .m) в мое приложение? Если да, то как мне построить эти файлы?

Чего бы я хотел достичь

Я бы хотел импортировать MSCollectionViewLayout как библиотеку, прикрепить ее к своему CollectionViewControllers и создать свою собственную функциональность поверх всего этого, используя Swift.

Спасибо всем заранее! Надеюсь, я смогу зафиксировать правильные ответы здесь в файле README.md репозитория.

1 Ответ

1 голос
/ 27 марта 2019

Вы можете лучше использовать одно из приведенных ниже репозиториев, которые просто написаны на Swift и имеют тот же пользовательский интерфейс, что и MSCollectionViewLayout

1) CalendarKit

2) Календарь

Примечание: я лично использовал эти библиотеки, и их легко интегрировать с существующим приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...