Как добавить пользовательские значки с помощью fontAwesome в UIbutton в Swift 4 - PullRequest
0 голосов
/ 01 ноября 2018

В настоящее время я работаю над приложением IOS и хочу добавить метки кнопок или значок с помощью FontAwesome. Я успешно установил cocoapods в своем проекте, и теперь у меня нет идеи использовать cocoapods для добавления библиотеки FontAwesome (Дополнительная информация: - введите описание ссылки здесь ) иконки в моем приложении IOS.

  • Мне нужно знать о процедуре добавления FontAwesome с помощью cocoapods, и
  • Мне нужно знать, есть ли еще один способ добавить FontAwesome в мой проект

спасибо

Ответы [ 4 ]

0 голосов
/ 05 июля 2019

Если вы еще не установили CocoaPods, это хорошие инструкции: https://stackoverflow.com/a/25257238/8534588

Установить FontAwesome с CocoaPods:

  1. Откройте Podfile, который находится в той же папке, что и ваш файл .xcodeproj
  2. Добавьте эту строку в Podfile для установки FontAwesome.swift: pod 'FontAwesome.swift'
  3. Сохранить изменения в Podfile
  4. Откройте Терминал в папке, содержащей Podfile, и выполните команду pod install

Как использовать значки FontAwesome:

Добавьте import FontAwesome_swift в ваш файл кода

Пример кода:

let image = UIImage.fontAwesomeIcon(name: .checkCircle, style: .solid, textColor: UIColor.black, size: CGSize(width: 40, height: 40))

0 голосов
/ 01 ноября 2018

Используйте как показано ниже: -

Step1: добавьте рамки, как показано ниже enter image description here

Шаг 2. Перетащите все файлы .otf и .swift в свой проект Шаг 3: импортировать FontAwesome_swift Шаг 4: Используйте следующий код: -

let imageView  = UIImageView(frame: CGRect(x: 80.0, y: 80.0, width: 50, height: 50))
imageView.image = UIImage.fontAwesomeIcon(name: .github, style: .brands, textColor: .black, size: CGSize(width:40,height:40))
self.view.addSubview(imageView) 

Результат: -

enter image description here

0 голосов
/ 01 ноября 2018

Я сделал это в Задаче C, так что надеюсь, что это будет полезно. Процедура будет такой же, но вам нужно преобразовать код Objective C в Swift.

Так что для этого в Objective C, Вы можете выполнить шаг, упомянутый в этой ссылке, чтобы вручную добавить FontAwesome в свой проект без использования CocoaPod, если вы не хотите использовать CocoaPod

Добавить вручную FontAwesome

Из этого проекта Github выведите класс категории NSString, т.е. NSString+FontAwesome

Вам также необходимо добавить fontawesome-webfont.ttf в папку ресурсов

NB: Для меня возникла ошибка после того, как я добавил класс NSString, упомянутый там в приведенной выше ссылке. Если вы сталкиваетесь с такой проблемой, как повторяющееся определение, просто переименуйте те константы перечисления, которые не удовлетворяют переменной соглашение об именовании. (Для меня некоторые из констант enum использовали hypen (-), я заменил их на подчеркивание (_)).

0 голосов
/ 01 ноября 2018

Существует много способов использования значков шрифтов в приложении для iOS. Вы можете отказаться от любого из них в соответствии с вашим пониманием и комфортом.

Подход 1:

Написание собственной логики

  • Добавьте потрясающие файлы шрифтов в исходный код компиляции и убедитесь, что они добавлены правильно (см. Прикрепленные изображения)
  • Сохранить строку Unicode для любого шрифта-удивительного значка (В коде примера я беру ссылку на значок закрытия. Его шрифт классного класса и текст Unicode имеют значения fa-close и f00d соответственно ( См. Пример кода ). В моем случае у меня есть класс, в котором у меня есть вся строка значков шрифта awesome, и другой класс, который принимает строку класса шрифта awesome и возвращает соответствующую строку Unicode.
  • Создайте приписанную строку с этой строкой Unicode и установите для нее свойство attributetedText ( См. Пример кода ниже ).

Вы можете найти нужный вам шрифт, потрясающую строку и Unicode здесь

Your font awesome file looks like something similar to this

Make sure these font awesome file added to your build-phase source

Пример кода

Step1

В этом примере я создал расширение, которое возвращает строку Unicode.

 extension String {

     func fontAwesomeString(name: String) -> String {

         switch name {
         case "fa-close":
            return "\u{f00d}"
         default: // manage exhaustive case accordingly
         }
      } 
 }

Step2

Вызовите вышеуказанный метод, передав соответствующий шрифт соответствующего шрифта.

let iconUnicodeText = String.fontAwesomeString(name: "fa-close")
let iconAttributed = NSMutableAttributedString(string: iconUnicodeText)
self.iConLabel.attributedText = iconAttributed // iConLabel is a control type of UIlabel.

Или, если вы не хотите организовывать свой исходный код, вы можете напрямую создать атрибутивную строку с помощью Unicode и установить для атрибута attributetedText.

Примечание: Возможно, вам потребуется внести изменения в приведенный выше фрагмент кода. Как я написал для Swift 4.0

Подход 2:

Использование какао-бобов

Как только вы установили библиотеку pod, вы вызываете соответствующие методы, показанные в примере, как показано ниже

yourButton.titleLabel?.font = UIFont.fontAwesome(ofSize: 30, style: .brands) 
yourButton.setTitle(String.fontAwesomeIcon(name:. gitgub), for : .normal) // you may change icon type with your desired one
...