Как использовать символы SF в iOS 12 и ниже?

Я обновляю значки в своем приложении. После того, как я услышал, что Apple выпустила иконочный шрифт с именем SF Symbols с iOS 13, мне стало интересно, могу ли я использовать их только в iOS 13 или их можно использовать и в более ранних версиях iOS.

Если я хочу их использовать, должен ли я реализовать запасной вариант для более старых версий?

Имейте в виду, что многие символы можно использовать только специально связаны с определенными функциями Apple. «Некоторые символы можно использовать только для обозначения технологий Apple…» developer.apple.com/design/human-interface-guidelines/… прокрутите вниз до Символы для использования «как есть» и обратите внимание на таблицу.

Fattie 07.08.2019 14:21

Так или, например, (идеальный) SFSymbols «облачный» символ можно использовать только в качестве ссылки на iCloud. К сожалению, вы не можете просто использовать его как общую «облачную» ссылку. (идеальные) похожие на камеру символы можно использовать только как ссылку на FaceTime. К сожалению, вы не можете просто использовать его как общую ссылку «камера».

Fattie 07.08.2019 14:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
63
2
35 730
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

SF Symbols — это система, поддерживаемая только в iOS 13 и более поздних версиях. Их невозможно использовать в iOS 12 и более ранних версиях. Вам нужно будет использовать запасные варианты для этих старых операционных систем.

См. Рекомендации по человеческому интерфейсу

Не все символы SF поддерживаются в iOS 13. Есть два приложения для Mac, демонстрирующие символы: одно под названием «SF Symbols», которое содержит более полный набор, и одно под названием «San Fransymbols», которое содержит меньший набор с примерами кода. В iOS13 можно использовать только значки, прослушиваемые в приложении «San Fransymbols».

crow 07.07.2021 19:24
Ответ принят как подходящий

Вы не можете изначально использовать SFSymbols в версиях iOS старше iOS 13 (см. Apple Рекомендации по человеческому интерфейсу для символов SF).

Однако, если вы заинтересованы в использовании графики, вы можете использовать Приложение SFSymbols для экспорта SVG-версий значка. Затем используйте какой-нибудь графический инструмент, чтобы преобразовать их в значки PNG, которые вы можете импортировать в свой каталог ресурсов.

Screenshot how to export SVG from SFSymbols app on Mac.

Спасибо! Можете ли вы добавить URL-адрес и цитату из руководства по интерфейсу, чтобы будущие посетители сразу это видели?

Julian Pomper 12.06.2019 07:49

Не все иконки в приложении SFSymbols можно экспортировать.

Frank Cheng 05.07.2019 03:30

@FrankCheng Я думаю, что это противоречит правилам товарных знаков Apple, и ваше приложение будет отклонено, если вы экспортируете и используете их в активах. Проверьте раздел «важно» на веб-сайте Apple developer.apple.com/design/human-interface-guidelines/….

Soheil Novinfard 30.10.2019 01:57

Не могли бы вы уточнить, где сказано, что вы не должны использовать символы SF в более старых версиях iOS? Эта цитата предполагает, что символы SF не поддерживаются в более старых версиях, но, похоже, не препятствует использованию графических версий значков. Это актуально для тех, кто хочет сохранить единообразный вид в разных версиях iOS, в отличие от использования символов SF в iOS 13 и разных значков в более старых версиях. Спасибо!

Crashalot 16.11.2019 00:51

Проголосовали против, поскольку упомянутый документ Apple, по-видимому, на самом деле не препятствует использованию SF Symbol в более ранних выпусках ОС.

Greg Brown 09.01.2020 17:05

Вы можете подтвердить, что это работает? Я экспортировал информационное изображение с помощью sf как svg. и это работает на iOS 13, но не на 12.

RicardoDuarte 11.02.2020 23:28

Для тех, кто задается вопросом, какой «графический инструмент» использовать, @user25917 предлагает Figma, который, как я обнаружил, отлично справляется с экспортом в PDF.

Ric Santos 01.04.2020 05:28

Этот бесплатный онлайн-инструмент позволяет загружать символы научной фантастики в формате png, разделенные на 3 размера, для iOS. Просто нажмите кнопку загрузки IOS, чтобы получить zip-файл с фрагментами png. hotpot.ai/free-icons?s=sfSymbols

Alexei Fando 07.01.2021 02:06

@AlexeiFando Спасибо, экспорт работает хорошо, и их легко импортировать, просто перетащите их в активы. Если вы хотите поддерживать как iOS 12, так и 13, вы даже можете использовать их в качестве «резервных значков», присвоив импортированному файлу то же имя, что и значок iOS 13 SF. К сожалению, загружаемые изображения не соответствуют обычным значкам iOS 12: опция «iOS» загружает большую, полужирную версию (неизвестно, какой «размер файла» использовать), а с опцией «png» значок использует правильный жирность. но огромен и добавляет массу места по бокам.

Neph 20.04.2021 12:28

Идет работа

Мне не удалось найти решение, я сдался, но на самом деле я довольно далеко зашел в расследовании. Может быть, кому-то повезло больше, чем мне, удастся выяснить 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, а затем его использования таким же образом.

Alladinian 14.08.2019 13:34

Когда я пытаюсь добавить этот файл в Info.plist, он не отображается в UIFont.familyNames. Однако я не пытался увидеть, действительно ли он добавляет все эти символы к семейству Сан-Франциско. посмотрю

Olympiloutre 15.08.2019 01:30

SFSymbol — это просто название подмножества символов (символов) в обычном шрифте San Francisco. Если вы просмотрите шрифт San Francisco во встроенном средстве просмотра шрифтов (в OSX), вы увидите, что он содержит символы в виде глифов в определенном диапазоне Unicode. Поэтому, конечно, он конфликтует, когда вы пытаетесь установить его на устройство iOS: вы собираетесь заменить собственный системный шрифт, что, безусловно, Apple не позволит вам сделать.

Psi 23.09.2019 22:50

@Psi, вот почему я также пытался отредактировать имя шрифта с помощью редактора шрифтов. Изменение имени семейства шрифтов и других вещей. Однако при попытке установить его по-прежнему происходит сбой без какого-либо журнала ошибок. (Может быть идентификатор, который я забыл изменить или около того)

Olympiloutre 24.09.2019 01:36

В файле шрифта указано семейство шрифтов. Если бы вы не изменили необработанные данные шрифта (то есть семейство шрифтов), вы не смогли бы установить шрифт.

Psi 24.09.2019 01:37

@Psi, это то, что я пробовал, не только изменяя имя файла, но и открывая файл ttf и изменяя необработанные значения для fontFamilyName и т. д. ... Но это болезненно, учитывая, что бесплатные редакторы шрифтов довольно старые (те, которые я нашел по крайней мере ). Я пытался несколько раз, но это всегда терпит неудачу.

Olympiloutre 24.09.2019 01:40

@Olympiloutre есть инструмент для экспорта символов SF в разные форматы - github.com/davedelong/sfsymbols

Max Polkovnik 19.10.2019 08:23

@MaxPolkovnik Спасибо, пока это самое простое решение!

Olympiloutre 20.10.2019 05:38

Привет @Olympiloutre. Могу ли я написать по электронной почте о бесплатной альтернативе, которую мы создали? Не хочу оставлять URL, чтобы избежать восприятия спама. Удалим этот комментарий, как только вы это прочитаете. Спасибо! (В вашем профиле не было контактной информации.)

Crashalot 01.12.2019 00:50

@Olympiloutre Мне удалось импортировать файл шрифта в проект. но как именно я могу преобразовать это в символы, которые я могу использовать для изображений кнопок? (в словах - какой код заменяет строку "systemName"?)

Hello 03.05.2020 13:33

Безумие! Почему бы не использовать встроенный экспорт и использовать SVG, который вы хотите??

ATV 09.03.2021 10:43

Весь смысл в том (в то время) в том, чтобы предотвратить разделение вашего кода между ОС. Да, вы можете экспортировать его, но либо вы используете только SVg, либо используете SVG до iOS 12 и SFSymbols после.

Olympiloutre 10.03.2021 17:04

Вы можете открыть .svg с помощью Figma. Затем выберите Regular-M и экспортируйте в формате PDF или PNG.


Обновление для более подробной информации:

Вы можете использовать векторные ресурсы PDF в Xcode. Так что иконка должна соответствовать любому размеру, который вы хотите. Пожалуйста, проверьте этот блог: https://useyourloaf.com/blog/xcode-9-vector-images/

Новый Xcode имеет другой пользовательский интерфейс, но в основном такой же. В каталоге активов:

  1. Перетащите векторный файл PDF.
  2. Установите флажок «Сохранить векторные данные».
  3. Выберите «Единая шкала».

Я хочу использовать значок в кнопке на панели инструментов, но размер значка не такой, как у других системных значков. Есть ли способ уменьшить размер?

juliushuck 28.12.2019 19:44

@huckjulius Вы можете использовать Figma, чтобы напрямую настроить размер вектора значка. Или вы можете экспортировать в векторный файл PDF, а затем динамически изменять размер (в коде).

user25917 30.12.2019 03:48

Лучший ответ. Перетащите экспортированный файл из SF Symbols в Sigma, а затем нажмите на векторное изображение, а затем на правой панели экспорта. Сделанный.

coolcool1994 25.06.2020 13:52

Я заметил, что PDF-файл Xcode обрабатывается не через вектор, а генерирует изображение. Так что отрегулируйте размер фотографии для ваших нужд.

user25917 31.03.2021 05:24

Нам все еще нужно 3 размера, есть идеи, как это сделать в Figma?

CyberMew 12.10.2021 13:17

@CyberMew Я не уверен, какие 3 размера вам нужны. Если каталог активов Xcode запрашивает три слота. Просто на панели инспектора выберите Scales: "Single Scale". Также проверьте изменение размера: «Сохранить векторные данные». Если вам просто нужны 3 разных размера значка. Изменение размера и экспорт в три раза работает. И о чем я говорю, это обходной путь для символа SF. Подробнее о ресурсах PDF. Пожалуйста, проверьте полезный блог здесь: useyourloaf.com/blog/xcode-9-vector-images

user25917 29.10.2021 05:11

Вы можете загрузить в свой проект новый шрифт ios 13 sf-pro-rounded. Затем включите этот шрифт в свой ярлык.

Откройте символы sf, нажмите на нужный смбол, cmd+c, перейдите в свой проект, нажмите на метку cmd+v. Запустите проект, и должна появиться иконка

ваше здоровье,

Вам не нужен файл SFSymbolsFallback.ttf из приложения SF Symbols? Или вы говорите, что все значки SF Symbols уже содержатся в шрифте SF Pro Rounded?

Crashalot 01.12.2019 00:56

Спасибо! Я открыл приложение «Шрифты» на своем 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 для вставки. Это сработало!

Scotch Design 28.09.2020 11:35

Этот набор значков основан на символах 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?

Akash Shindhe 14.12.2020 16:25

В SF Symbols 3.1 выберите Правка > Копировать изображение как... Вы можете выбрать PNG / размер точки / масштаб пикселей и вставить в предварительный просмотр и т. д.

Спасибо! Но почему, черт возьми, они не предлагают PDF для импорта непосредственно в Xcode?

heyfrank 12.01.2022 14:09

Другие вопросы по теме