Как распознать прикосновение внутри объекта SVG в Swift? - PullRequest
0 голосов
/ 10 января 2019

В настоящее время я создаю приложение, в котором мне нужно распознать точку касания на карте SVG. Таким образом, у меня есть map с несколькими rectangles, и когда пользователь касается одного из этих rectangles, необходимо запустить действие. Как я могу решить это?

Одним из вариантов будет математический расчет, если место касания находится между прямоугольником, но я не гений математики.

Мой предпочтительный вариант - использовать фреймворк. Я нашел SVGKit-фреймворк, но, к сожалению, он написан на Objective C.

1 Ответ

0 голосов
/ 11 января 2019

Вы можете использовать SVGKit для проекта Swift. Вы должны использовать файл заголовка зонтика , это основной файл заголовка для фреймворка.

Импорт Objective-C в Swift

Доступ к классам и другим объявлениям из вашего кода Objective C в Swift.

Обзор

Вы можете использовать файлы Objective-C и Swift вместе в одном проекте, независимо от того, какой язык изначально использовался в проекте. Это делает создание приложений и фреймворков на разных языках как простых как создание цели приложения или фреймворка, написанной на одном языке.

enter image description here

Процесс использования ваших объявлений Objective-C от вашего Swift код в смешанных языковых целях немного отличается в зависимости от пишете ли вы приложение или фреймворк. Оба процесса описано ниже.

Код импорта в пределах цели приложения

Чтобы импортировать набор файлов Objective C в код Swift в пределах того же цель приложения, вы полагаетесь на файл заголовка моста Objective C, чтобы выставить эти файлы в Swift. Xcode предлагает создать этот заголовок при добавлении файл Swift для существующего приложения Objective C или файл Objective C для существующее приложение Swift.

enter image description here

Если вы принимаете, Xcode создает файл заголовка моста вместе с файл, который вы создавали, и называет его, используя имя модуля вашего продукта сопровождаемый "-Bridging-Header.h". Кроме того, вы можете создать соединяя заголовок самостоятельно, выбрав File> New> File> [operating system]> Source> Header File.

Отредактируйте соединительный заголовок, чтобы представить ваш код Objective-C вашему Swift код:

  • В заголовке моста Objective C импортируйте каждый заголовок Objective C, который вы хотите представить в Swift.
  • В настройках сборки в Swift Compiler - Generation Code убедитесь, что параметр сборки Objective-C Bridging Header имеет путь к заголовочный файл моста. Путь должен быть относительно вашего проекта, аналогично тому, как ваш Info.plist путь указан в Build Настройки. В большинстве случаев вам не нужно изменять этот параметр.

Все публичные заголовки Objective C, перечисленные в заголовке моста, виден Свифту. Объявления Objective C автоматически доступно из любого файла Swift в пределах этой цели, без импорта заявления. Используйте классы и другие объявления из вашего кастома Код Objective C с тем же синтаксисом Swift, который вы используете для системы классы.

Код импорта в рамках целевой структуры

Чтобы использовать объявления Objective C в файлах в той же самой структуре целевой как ваш код Swift, вам нужно будет импортировать эти файлы в Заголовок Objective-C - главный заголовок вашей платформы. Импортируйте файлы Objective-C, настроив зонтичный заголовок:

  • В разделе «Параметры сборки» в разделе «Упаковка» убедитесь, что для параметра «Определить модуль» для целевого фреймворка установлено значение Yes.
  • В зонтичном заголовке импортируйте каждый заголовок Objective-C, который вы хотите представить, в Swift.

Swift видит все открытые заголовки в заголовке вашего зонтика. Содержимое файлов Objective-C в этой структуре автоматически доступны из любого файла Swift в этой структуре цель, без операторов импорта. Используйте классы и другие объявления из вашего кода Objective C с тем же синтаксисом Swift, который вы используете для системные классы.

Источник

Дополнительная информация

...