Текст и метки
Для отображения текста в приложении WatchKit используйте объекты метки. Метки поддерживают форматированный текст, который может быть изменен программно во время выполнения.
Для добавления метки к контроллеру интерфейса перетащите его в соответствующую сцену раскадровки. Оттуда, сконфигурируйте начальную текстовую строку и формат метки. WatchKit поддерживает и стандартные шрифты и пользовательские шрифты, которые Вы указываете сами. Рисунок 8-1 показывает стили стандартного шрифта, доступные для Вас для использования.
Для получения дополнительной информации о конфигурировании объектов метки в XCode и в Вашем коде, посмотрите Ссылку класса WKInterfaceLabel.
Используя шрифты
Приложения WatchKit, интерфейсы взгляда и интерфейсы уведомления используют системный шрифт для отображения текста. Контроллеры интерфейса в Вашем главном приложении могут также использовать пользовательские шрифты для отображения текста. (Взгляд и интерфейсы уведомления не могут использовать пользовательские шрифты.) Для использования пользовательских шрифтов необходимо установить те шрифты путем выполнения следующего:
Включайте файл пользовательского шрифта и в Ваше приложение WatchKit и в Ваш пакет расширения WatchKit.
Добавьте
UIAppFonts
ключ к Вашему приложению WatchKitInfo.plist
файл и использование это для указания шрифтов Вы добавили к пакету. Для получения дополнительной информации об этом ключе, посмотрите информационную Ключевую Ссылку Списка свойств.
Для форматирования текста с помощью пользовательского шрифта создайте приписанную строку с помощью информации о шрифтах и затем используйте ту строку для установки текста метки, как показано в Перечислении 8-1. Имя шрифта и размер кодируются с приписанной строкой, тогда использующейся для обновления метки на Часах Apple пользователя. Если имя шрифта, которое Вы указываете, не является ни системным шрифтом, ни одним из Ваших пользовательских установленных шрифтов, WatchKit использует системный шрифт.
// Configure an attributed string with custom font information
let menloFont = UIFont(name: "Menlo", size: 12.0)!
var fontAttrs = [NSFontAttributeName : menloFont]
var attrString = NSAttributedString(string: "My Text", attributes: fontAttrs)
// Set the text on the label object
self.label.setAttributedText(attrString)
Управление вводом текста
WatchKit обеспечивает стандартный модальный интерфейс для получения ввода текста от пользователя. Когда представлено, интерфейс позволяет пользователю вводить текст через предписание или выбирать из стандартного набора фраз или emoji, как показано на рисунке 8-2.
Для представления этого интерфейса вызовите presentTextInputControllerWithSuggestions:allowedInputMode:completion:
метод в настоящее время активного контроллера интерфейса. При представлении интерфейса Вы указываете типы ввода, который Вы поддерживаете и блок для выполнения с результатами. Вы также указываете начальный набор фраз для отображения в интерфейсе. Пользователь может выбрать из доступных фраз или использовать средства управления для ввода различной фразы.
Перечисление 8-2 показывает, как сконфигурировать контроллер ввода текста и обработать результаты. После указания начальных фраз и режимов ввода контроллер работает асинхронно. Когда пользователь выбирает элемент или отменяет ввод, Ваш блок выполняется на основном потоке. Используйте тот блок для получения текста или изображения emoji, выбранного пользователем, и обновите приложение.
NSArray* initialPhrases = @[@"Let's do lunch.", @"Can we meet tomorrow?", @"When are you free?"];
[self presentTextInputControllerWithSuggestions:initialPhrases
allowedInputMode:WKTextInputModeAllowAnimatedEmoji
completion:^(NSArray *results) {
if (results && results.count > 0) {
id aResult = [results objectAtIndex:0];
// Use the string or image.
}
else {
// Nothing was selected.
}
}];
Интернационализация текстового кода
Приложения WatchKit могут использовать те же технологии для интернационализации то использование приложений для iOS.
Используйте основную поддержку интернационализации XCode раскадровок и xib файлов. Основная интернационализация позволяет Вам иметь только один набор файлов раскадровки, поддерживающий все локализации. Локализованные строки для раскадровки сохранены отдельно в специфичных для языка строковых файлах.
Используйте
NSLocalizedString
семья макросов для получения локализованных строк программно.Используйте
NSNumberFormatter
класс для форматирования численных значений с помощью области пользователя и настроек локали.Используйте
NSDateFormatter
класс для форматирования дат с помощью области пользователя и настроек локали.
При интернационализации приложения основное беспокойство должно располагать интерфейс так, чтобы метки (и другие средства управления с текстом) имели пространство для расширения. Например, вместо того, чтобы использовать группу для расположения трех кнопок горизонтально расположите кнопки вертикально для предоставления каждой комнаты для роста горизонтально, когда ее текст станет более длинным.
Для получения дополнительной информации об интернационализации Вашего приложения, посмотрите Руководство по Интернационализации и Локализации.