Придайте своему приложению немного шрифта и стиля

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

Если вы хотите изучить ARKit 3 от новичка до уровня эксперта, нажмите здесь, чтобы пройти курс, и вы также получите скидку 97%.

Если вы увлечены изучением мобильной разработки для iOS и хотите вывести свои навыки разработки для iOS на новый уровень, Core Data with CloudKit framework должен быть в верхней части вашего списка. Нажмите здесь, чтобы пройти курс, а также вы получите скидку 97%.

Изучите SwiftUI с нуля, нажмите здесь, чтобы получить курс, потому что в этом курсе мы собираемся создать множество приложений с использованием SwiftUI, таких как клон Facebook, приложение News, приложение Notes и многое другое.

Подпишитесь на мой канал Youtube, чтобы узнать больше о Swift, SwiftUI и разработке для iOS. Я ежедневно выкладываю видео о Swift и разработке под iOS.



Цель этой пьесы

  • Мы реализуем эту новую функцию UIFontPickerController в наших примерах приложений iOS.
  • Мы поговорим о некоторых методах делегирования UIFontPickerController, и, более конкретно, вы можете создать его с помощью класса настройки, который содержит три полезных свойства.

Начало работы с примером приложения для iOS

Откройте Xcode и создайте новый проект Xcode.

Выберите Приложение для одного просмотра в шаблоне iOS и нажмите n ext.

Введите свое Название продукта, c lick n ext, и создайте его на своем рабочем столе.

Реализация

Сначала перейдите к Main.storyboard и вставьте ViewController в NavigationController, затем перетащите один UILabel из вашей библиотеки объектов, поместите его на холст и ограничьте его. Затем откройте помощник редактора и создайте один IBOutlet из UILabel.. Теперь перейдите к ViewController.swift файлу и унаследуйте протокол UIFontPickerControlleDelegate.

  1. Мы начинаем с создания UIFontPickerController экземпляра и передаем делегату self в viewDidLoad() методе.
  2. Далее мы возьмем fontPickerViewControllerDidPickFont() метод делегата UIFontPickerControlleDelegate.
  3. Затем мы создадим дескриптор, который является необязательным, и будет использовать guard let для его безопасного развертывания.
  4. Затем мы создадим экземпляр UIFont и в параметре descriptor передадим наш descriptor, который мы недавно создали.
  5. Наконец, мы установим этот UIFont на наш UILabel шрифт.

Код выглядит так

let fontPicker = UIFontPickerViewController()
func fontPickerViewControllerDidPickFont(_ viewController: UIFontPickerViewController) {
guard let descriptor = viewController.selectedFontDescriptor else { return }
let font = UIFont(descriptor: descriptor, size: 36)
myLabel.font = font
}

Реализация кнопки в NavigationItem

navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Choose Font", style: .plain, target: self, action: #selector(chooseFontPickerButtonPressed))

В следующем коде мы представляем UIFontPickerController.

@objc func chooseFontPickerButtonPressed() {
present(fontPicker, animated: true)
}

Строй и беги!

Метод дополнительного делегата

Если вы хотите, вы можете дополнительно добавить метод fontPickerViewControllerDidCancel(), который будет вызываться, если пользователь отменяет средство выбора шрифта, а не выбирает шрифт:

func fontPickerViewControllerDidCancel(_ viewController: UIFontPickerViewController) {
    // handle cancel event here
}

Три полезных свойства для настройки

  • displayUsingSystemFont будет отображать каждый шрифт системным шрифтом по умолчанию, а не использовать сам шрифт. Это приносит в жертву удобочитаемости. (По умолчанию это false.)
  • includeFaces добавляет стрелку раскрывающегося списка рядом с каждым типом шрифта, позволяя пользователям выбирать различный вес и параметры. (По умолчанию это тоже неверно.)
  • filteredTraits - это набор характеристик, ограничивающих типы шрифтов, которые вы хотите отображать. (По умолчанию он пуст, поэтому отображаются все шрифты.)

Например, если бы мы хотели показать средство выбора шрифта в системных шрифтах с включенными начертаниями, но отображать только шрифты с засечками (например, Times New Roman, а не Helvetica), мы бы написали такой код:

let configuration = UIFontPickerViewController.Configuration()
configuration.includeFaces = true
configuration.displayUsingSystemFont = true
configuration.filteredTraits = [.classModernSerifs]
let vc = UIFontPickerViewController(configuration: configuration)

Заключение

Вот и все, что касается этой статьи, мы реализовали новую функцию iOS 13. UIFontPickerController. Внедрите эту новую функцию iOS 13 в свое приложение iOS, чтобы дать пользователям возможность выбирать разные стили шрифтов.

Исходный код

Вы можете найти полный проект на Github.

Дополнительные ресурсы

Если вы хотите изучить ARKit 3 от новичка до уровня эксперта, нажмите здесь, чтобы пройти курс, и вы также получите скидку 97%.

Если вы увлечены изучением мобильной разработки для iOS и хотите вывести свои навыки разработки для iOS на новый уровень, Core Data with CloudKit framework должен быть в верхней части вашего списка. Нажмите здесь, чтобы пройти курс, а также вы получите скидку 97%.

Изучите SwiftUI с нуля, нажмите здесь, чтобы получить курс, потому что в этом курсе мы собираемся создать множество приложений с использованием SwiftUI, таких как клон Facebook, приложение News, приложение Notes и многое другое.

Подпишитесь на мой канал Youtube, чтобы узнать больше о Swift, SwiftUI и разработке для iOS. Я ежедневно выкладываю видео о Swift и разработке под iOS.