Придайте своему приложению немного шрифта и стиля
В 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
.
- Мы начинаем с создания
UIFontPickerController
экземпляра и передаем делегату self вviewDidLoad()
методе. - Далее мы возьмем
fontPickerViewControllerDidPickFont()
метод делегатаUIFontPickerControlleDelegate.
- Затем мы создадим дескриптор, который является необязательным, и будет использовать guard let для его безопасного развертывания.
- Затем мы создадим экземпляр
UIFont
и в параметреdescriptor
передадим нашdescriptor
, который мы недавно создали. - Наконец, мы установим этот
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.