Я обновляю значки в своем приложении. После того, как я услышал, что Apple выпустила иконочный шрифт с именем SF Symbols с iOS 13, мне стало интересно, могу ли я использовать их только в iOS 13 или их можно использовать и в более ранних версиях iOS.
Если я хочу их использовать, должен ли я реализовать запасной вариант для более старых версий?
Так или, например, (идеальный) SFSymbols «облачный» символ можно использовать только в качестве ссылки на iCloud. К сожалению, вы не можете просто использовать его как общую «облачную» ссылку. (идеальные) похожие на камеру символы можно использовать только как ссылку на FaceTime. К сожалению, вы не можете просто использовать его как общую ссылку «камера».





SF Symbols — это система, поддерживаемая только в iOS 13 и более поздних версиях. Их невозможно использовать в iOS 12 и более ранних версиях. Вам нужно будет использовать запасные варианты для этих старых операционных систем.
См. Рекомендации по человеческому интерфейсу
Не все символы SF поддерживаются в iOS 13. Есть два приложения для Mac, демонстрирующие символы: одно под названием «SF Symbols», которое содержит более полный набор, и одно под названием «San Fransymbols», которое содержит меньший набор с примерами кода. В iOS13 можно использовать только значки, прослушиваемые в приложении «San Fransymbols».
Вы не можете изначально использовать SFSymbols в версиях iOS старше iOS 13 (см. Apple Рекомендации по человеческому интерфейсу для символов SF).
Однако, если вы заинтересованы в использовании графики, вы можете использовать Приложение SFSymbols для экспорта SVG-версий значка. Затем используйте какой-нибудь графический инструмент, чтобы преобразовать их в значки PNG, которые вы можете импортировать в свой каталог ресурсов.
Спасибо! Можете ли вы добавить URL-адрес и цитату из руководства по интерфейсу, чтобы будущие посетители сразу это видели?
Не все иконки в приложении SFSymbols можно экспортировать.
@FrankCheng Я думаю, что это противоречит правилам товарных знаков Apple, и ваше приложение будет отклонено, если вы экспортируете и используете их в активах. Проверьте раздел «важно» на веб-сайте Apple developer.apple.com/design/human-interface-guidelines/….
Не могли бы вы уточнить, где сказано, что вы не должны использовать символы SF в более старых версиях iOS? Эта цитата предполагает, что символы SF не поддерживаются в более старых версиях, но, похоже, не препятствует использованию графических версий значков. Это актуально для тех, кто хочет сохранить единообразный вид в разных версиях iOS, в отличие от использования символов SF в iOS 13 и разных значков в более старых версиях. Спасибо!
Проголосовали против, поскольку упомянутый документ Apple, по-видимому, на самом деле не препятствует использованию SF Symbol в более ранних выпусках ОС.
Вы можете подтвердить, что это работает? Я экспортировал информационное изображение с помощью sf как svg. и это работает на iOS 13, но не на 12.
Для тех, кто задается вопросом, какой «графический инструмент» использовать, @user25917 предлагает Figma, который, как я обнаружил, отлично справляется с экспортом в PDF.
Этот бесплатный онлайн-инструмент позволяет загружать символы научной фантастики в формате png, разделенные на 3 размера, для iOS. Просто нажмите кнопку загрузки IOS, чтобы получить zip-файл с фрагментами png. hotpot.ai/free-icons?s=sfSymbols
@AlexeiFando Спасибо, экспорт работает хорошо, и их легко импортировать, просто перетащите их в активы. Если вы хотите поддерживать как iOS 12, так и 13, вы даже можете использовать их в качестве «резервных значков», присвоив импортированному файлу то же имя, что и значок iOS 13 SF. К сожалению, загружаемые изображения не соответствуют обычным значкам iOS 12: опция «iOS» загружает большую, полужирную версию (неизвестно, какой «размер файла» использовать), а с опцией «png» значок использует правильный жирность. но огромен и добавляет массу места по бокам.
Идет работа
Мне не удалось найти решение, я сдался, но на самом деле я довольно далеко зашел в расследовании. Может быть, кому-то повезло больше, чем мне, удастся выяснить hpw, чтобы продолжить начатое мной дело:
В документации Apple говорится, что для удобного просмотра всех новых символов SF в iOS 13 вы можете загрузить приложение SF Symbols: https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/.
После установки вы можете войти Application > SF Symbols > showPackage content
Оттуда под content > Resources мы можем найти интересный файл с именем SFSymbolsFallback.ttf
И если вы попытаетесь открыть этот файл на https://fontdrop.info/, вы увидите, что он содержит все глифы шрифта, выпущенные в iOS 13 как шрифт SF, с соответствующим юникоды.
Бинго? не так быстро...
Оттуда я попытался импортировать этот .ttf в свой проект в iOS 12 на XCode 10.2.1, но, похоже, он никогда не импортируется должным образом. Не восстанавливается в списке доступных шрифтов при звонке UIFont.familyNames
Что еще интересно, если я пытаюсь импортировать этот шрифт в приложение Книга шрифтов, я получаю предупреждение о том, что он содержит дублирование, какой-то конфликт с существующим шрифтом.
Оттуда?
Я предполагаю, что есть еще один шрифт, который препятствует установке символов SF в книге шрифтов и в Xcode.
Одним из решений может быть найти тот, который конфликтует в пакете XCode, и удалить его (это может быть Symbols шрифт или San Francisco, которые вызывают проблемы idk)
Я также безуспешно пытался открыть файл шрифта в редакторе шрифтов и изменить его имя и название семейства.
Если кто-то хочет продолжить расследование..
Надеюсь, это может помочь кому-то!
Как бы то ни было, приложение SFSymbols устанавливает новые версии семейства SF* с гораздо большим количеством глифов (~7000), поэтому единственное, что я сделал, — это скопировал символ (как в ⌘C) из приложения и вставил его в метка с использованием этого шрифта. Это было для приложения для Mac, хотя я не пытался тестировать на iOS, но я думаю, что это вопрос объявления шрифта в info.plist, а затем его использования таким же образом.
Когда я пытаюсь добавить этот файл в Info.plist, он не отображается в UIFont.familyNames. Однако я не пытался увидеть, действительно ли он добавляет все эти символы к семейству Сан-Франциско. посмотрю
SFSymbol — это просто название подмножества символов (символов) в обычном шрифте San Francisco. Если вы просмотрите шрифт San Francisco во встроенном средстве просмотра шрифтов (в OSX), вы увидите, что он содержит символы в виде глифов в определенном диапазоне Unicode. Поэтому, конечно, он конфликтует, когда вы пытаетесь установить его на устройство iOS: вы собираетесь заменить собственный системный шрифт, что, безусловно, Apple не позволит вам сделать.
@Psi, вот почему я также пытался отредактировать имя шрифта с помощью редактора шрифтов. Изменение имени семейства шрифтов и других вещей. Однако при попытке установить его по-прежнему происходит сбой без какого-либо журнала ошибок. (Может быть идентификатор, который я забыл изменить или около того)
В файле шрифта указано семейство шрифтов. Если бы вы не изменили необработанные данные шрифта (то есть семейство шрифтов), вы не смогли бы установить шрифт.
@Psi, это то, что я пробовал, не только изменяя имя файла, но и открывая файл ttf и изменяя необработанные значения для fontFamilyName и т. д. ... Но это болезненно, учитывая, что бесплатные редакторы шрифтов довольно старые (те, которые я нашел по крайней мере ). Я пытался несколько раз, но это всегда терпит неудачу.
@Olympiloutre есть инструмент для экспорта символов SF в разные форматы - github.com/davedelong/sfsymbols
@MaxPolkovnik Спасибо, пока это самое простое решение!
Привет @Olympiloutre. Могу ли я написать по электронной почте о бесплатной альтернативе, которую мы создали? Не хочу оставлять URL, чтобы избежать восприятия спама. Удалим этот комментарий, как только вы это прочитаете. Спасибо! (В вашем профиле не было контактной информации.)
@Olympiloutre Мне удалось импортировать файл шрифта в проект. но как именно я могу преобразовать это в символы, которые я могу использовать для изображений кнопок? (в словах - какой код заменяет строку "systemName"?)
Безумие! Почему бы не использовать встроенный экспорт и использовать SVG, который вы хотите??
Весь смысл в том (в то время) в том, чтобы предотвратить разделение вашего кода между ОС. Да, вы можете экспортировать его, но либо вы используете только SVg, либо используете SVG до iOS 12 и SFSymbols после.
Вы можете открыть .svg с помощью Figma. Затем выберите Regular-M и экспортируйте в формате PDF или PNG.
Обновление для более подробной информации:
Вы можете использовать векторные ресурсы PDF в Xcode. Так что иконка должна соответствовать любому размеру, который вы хотите. Пожалуйста, проверьте этот блог: https://useyourloaf.com/blog/xcode-9-vector-images/
Новый Xcode имеет другой пользовательский интерфейс, но в основном такой же. В каталоге активов:
Я хочу использовать значок в кнопке на панели инструментов, но размер значка не такой, как у других системных значков. Есть ли способ уменьшить размер?
@huckjulius Вы можете использовать Figma, чтобы напрямую настроить размер вектора значка. Или вы можете экспортировать в векторный файл PDF, а затем динамически изменять размер (в коде).
Лучший ответ. Перетащите экспортированный файл из SF Symbols в Sigma, а затем нажмите на векторное изображение, а затем на правой панели экспорта. Сделанный.
Я заметил, что PDF-файл Xcode обрабатывается не через вектор, а генерирует изображение. Так что отрегулируйте размер фотографии для ваших нужд.
Нам все еще нужно 3 размера, есть идеи, как это сделать в Figma?
@CyberMew Я не уверен, какие 3 размера вам нужны. Если каталог активов Xcode запрашивает три слота. Просто на панели инспектора выберите Scales: "Single Scale". Также проверьте изменение размера: «Сохранить векторные данные». Если вам просто нужны 3 разных размера значка. Изменение размера и экспорт в три раза работает. И о чем я говорю, это обходной путь для символа SF. Подробнее о ресурсах PDF. Пожалуйста, проверьте полезный блог здесь: useyourloaf.com/blog/xcode-9-vector-images
Вы можете загрузить в свой проект новый шрифт ios 13 sf-pro-rounded. Затем включите этот шрифт в свой ярлык.
Откройте символы sf, нажмите на нужный смбол, cmd+c, перейдите в свой проект, нажмите на метку cmd+v. Запустите проект, и должна появиться иконка
ваше здоровье,
Вам не нужен файл SFSymbolsFallback.ttf из приложения SF Symbols? Или вы говорите, что все значки SF Symbols уже содержатся в шрифте SF Pro Rounded?
Спасибо! Я открыл приложение «Шрифты» на своем Mac, поискал шрифт SF Pro Rounded, щелкнул правой кнопкой мыши вариант Light (тот, который мне нужен) и нажал «Показать в Finder». Я перетащил этот файл (SF-Pro-Rounded-Light.otf) в свой проект XCode и поставил галочку «Копировать, если необходимо». Затем я нажал на свой UIButton, установил для заголовка значение Attributed (это важно) и выбрал SF Pro Rounded Light в качестве шрифта. Затем я нашел нужный значок в SF Symbols, выбрал его, нажал CMD+C для копирования, переключился обратно на XCode, щелкнул текстовую часть заголовка UIButton и нажал CMD+V для вставки. Это сработало!
Этот набор значков основан на символах SF https://framework7.io/icons/.
1. Импортируйте шрифт:
Откройте приложение «Шрифты», найдите шрифт SF Pro Rounded, щелкните правой кнопкой мыши нужный вариант (например, «Светлый») и нажмите «Показать в Finder». Перетащите этот файл (например, SF-Pro-Rounded-Light.otf) в свой проект XCode и отметьте «Копировать, если необходимо».
2. Выберите шрифт:
Выберите свой UILabel или UIButton, установите для заголовка значение Attributed (это важно) и выберите шрифт, который вы только что скопировали (например, SF Pro Rounded Light).
3. Установите символ:
Найдите нужный значок в SF Symbols, выберите его, нажмите CMD+C, чтобы скопировать, переключитесь обратно на XCode, щелкните текстовую часть заголовка UILabel или UIButton и нажмите CMD+V, чтобы вставить.
Огромное спасибо Dave van Wijk за решение!
Как использовать в проекте swiftUI?
В SF Symbols 3.1 выберите Правка > Копировать изображение как... Вы можете выбрать PNG / размер точки / масштаб пикселей и вставить в предварительный просмотр и т. д.
Спасибо! Но почему, черт возьми, они не предлагают PDF для импорта непосредственно в Xcode?
Имейте в виду, что многие символы можно использовать только специально связаны с определенными функциями Apple. «Некоторые символы можно использовать только для обозначения технологий Apple…» developer.apple.com/design/human-interface-guidelines/… прокрутите вниз до Символы для использования «как есть» и обратите внимание на таблицу.