Tocropviewcontroller: Поддержка Swift 3

Созданный на 4 окт. 2016  ·  6Комментарии  ·  Источник: TimOliver/TOCropViewController

Как я могу использовать эту библиотеку с Swift 3?

enhancement question

Самый полезный комментарий

Этот проект написан на Objective-C, и нет необходимости вносить изменения в код (или полностью переписывать его на Swift), чтобы использовать его в Swift 3 или другом коде версии Swift, потому что файлы Objective-C и Swift могут сосуществовать в одном проект. Поэтому, если вы используете его через CocoaPods, тогда пример базовой реализации из Readme в Swift будет выглядеть так:

import TOCropViewController

func presentCropViewController() {
    let image: UIImage = ... // Load an image
    let cropViewController = TOCropViewController(image: image)
    cropViewController.delegate = self
    present(cropViewController, animated: true, completion: nil)
}

func cropViewController(_ cropViewController: TOCropViewController!, didCropTo image: UIImage!, with cropRect: CGRect, angle: Int) {
    // 'image' is the newly cropped version of the original image
}

Если вы копируете исходный код в проект Swift, ознакомьтесь с разделом «Импорт Objective-C в Swift» здесь https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html, а затем используйте аналогичный пример выше.

Все 6 Комментарий

Он должен работать, если вы добавите заголовок моста Objective-C! :)

В какой-то момент я посмотрю, смогу ли я улучшить дизайн API, чтобы сделать его более «быстрым».

Я использую TOCropViewController в проекте Swift 3 через cocoapods, работает без ошибок.

Ожидаем быстрой версии, пожалуйста # @akovalov :) :) :)

@osmanyildirim На самом деле ничего нельзя «ожидать» от бесплатного проекта с открытым исходным кодом. ;)

Если вам отчаянно нужна встроенная поддержка Swift 3, не стесняйтесь реализовать ее самостоятельно. : D

Этот проект написан на Objective-C, и нет необходимости вносить изменения в код (или полностью переписывать его на Swift), чтобы использовать его в Swift 3 или другом коде версии Swift, потому что файлы Objective-C и Swift могут сосуществовать в одном проект. Поэтому, если вы используете его через CocoaPods, тогда пример базовой реализации из Readme в Swift будет выглядеть так:

import TOCropViewController

func presentCropViewController() {
    let image: UIImage = ... // Load an image
    let cropViewController = TOCropViewController(image: image)
    cropViewController.delegate = self
    present(cropViewController, animated: true, completion: nil)
}

func cropViewController(_ cropViewController: TOCropViewController!, didCropTo image: UIImage!, with cropRect: CGRect, angle: Int) {
    // 'image' is the newly cropped version of the original image
}

Если вы копируете исходный код в проект Swift, ознакомьтесь с разделом «Импорт Objective-C в Swift» здесь https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html, а затем используйте аналогичный пример выше.

Я немного поигрался с улучшением взаимодействия Swift с этим проектом. Если не считать полного рефакторинга имен методов с использованием NS_SWIFT_NAME , я ДУМАЮ, что это почти все, что мы можем сделать.

Если вы можете придумать что-нибудь еще, что нужно для улучшения взаимодействия Swift, пожалуйста, напишите PR. :)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги