SCNText
SCNText
объект является геометрией, создающей ее содержание из строки текста, представленного в 2D и дополнительно вытесненного для создания трехмерного объекта.
Вы обеспечиваете текст для геометрии с помощью NSString
или NSAttributedString
объект. В прежнем случае, свойствах SCNText
объект определяет стиль и форматирование всей организации текста. При создании текстовой геометрии из приписанной строки SceneKit разрабатывает текст согласно атрибутам в строке и свойства SCNText
объект определяет стиль по умолчанию для частей строки, не имеющих никаких атрибутов стиля. SceneKit может создать текстовую геометрию с помощью любого шрифта и стиля, поддерживаемого Базовой текстовой платформой, за исключением растровых шрифтов (таких как те, которые определяют цвет emoji символы).
В системе локальной координаты текстовой геометрии источник соответствует левому нижнему углу текста с текстом, расширяющимся в размерностях оси y и x-. Геометрия центрируется вдоль ее оси z. Например, если extrusionDepth
свойство 1.0
, геометрия расширяется от -0.5
к 0.5
вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму — геометрия ограничена плоскостью, z-координата которой 0.0
, и просматриваемый только от его передней стороны, если его материал doubleSided
свойство YES
true
.
Чтобы расположить и ориентировать текстовую геометрию в сцене, присоедините его к geometry
свойство SCNNode
объект.
SceneKit может дополнительно закруглить кромки вытесненную текстовую геометрию путем применения перекрестного частного контура к его вытесненной глубине. Вы используете chamferRadius
свойство для добавления закругления кромок к вытесненному тексту, и chamferProfile
свойство для управления формой закругления кромок.
Текстовая геометрия может содержать один, три, или пять элементов геометрии:
Если
extrusionDepth
свойство0.0
, текстовая геометрия имеет один элемент, соответствующий его видимая сторона.Если его глубина экструзии больше, чем нуль и его
chamferRadius
свойство0.0
, текстовая геометрия имеет три элемента, соответствуя ее передней стороне, назад, и вытесненным сторонам.Если и глубина экструзии и радиус закругления кромок больше, чем нуль, текстовая геометрия имеет пять элементов, соответствуя ее передней стороне, назад, вытеснил стороны, переднее закругление кромок и заднее закругление кромок.
SceneKit может представить каждый элемент с помощью различного материала. Для получения дополнительной информации см. описание materials
свойство в Ссылке класса SCNGeometry.
Соответствует
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.8 и позже.
-
Создает текстовую геометрию из указанной строки, вытесненной с указанной глубиной.
Объявление
Swift
convenience init(string
string
: AnyObject, extrusionDepthextrusionDepth
: CGFloat)Objective C
+ (instancetype)textWithString:(id)
string
extrusionDepth:(CGFloat)extrusionDepth
Параметры
string
NSString
илиNSAttributedString
объект, содержащий текст, из которого можно создать геометрию.extrusionDepth
Степень текстовой геометрии в размерности Z ее пространства локальной координаты. Укажите глубину
0.0
создать 2D текст, ограниченный плоскостью.Возвращаемое значение
Новая текстовая геометрия.
Обсуждение
В системе локальной координаты текстовой геометрии источник соответствует левому нижнему углу прямоугольника расположения текста с текстом, расширяющимся в размерностях оси y и x-. (SceneKit вычисляет прямоугольник расположения автоматически, или можно указать тот с помощью
containerFrame
свойство.) Геометрия центрируется вдоль ее оси z. Например, еслиextrusionDepth
свойство1.0
, геометрия расширяется от-0.5
к0.5
вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму — геометрия ограничена плоскостью, z-координата которой0.0
, и просматриваемый только от его передней стороны, если его материалdoubleSided
свойствоYES
true
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
Строковый объект, текст которого геометрия представляет.
Объявление
Swift
@NSCopying var string: AnyObject!
Objective C
@property(nonatomic, copy) id string
Обсуждение
Можно предоставить текст как
NSString
илиNSAttributedString
объект. Когда Вы используетеNSString
объект, текстовые свойства геометрии определяют стиль всей организации текста. Можно использоватьNSAttributedString
объект предоставить организации текста, содержащего многократные стили, когда текстовые свойства геометрии определяют стиль по умолчанию для частей строки без атрибутов стиля.Значение по умолчанию этого свойства
nil
, который создает пустую текстовую геометрию.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
Шрифт, что использование SceneKit для создания геометрии из текста.
Обсуждение
Если текстовая геометрия
string
свойствоNSString
объект, SceneKit использует этот шрифт для рендеринга всего текста. Еслиstring
свойствоNSAttributedString
объект, SceneKit использует этот шрифт для любых частей строки, не содержащей атрибуты стиля.Стандартный шрифт является точкой Helvetica 36.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
containerFrame containerFrame
СвойствоПрямоугольник, указывающий область, в которой SceneKit должен разметить текст.
Обсуждение
SceneKit может разметить организацию текста для адаптации в прямоугольной области. Чтобы сделать это, необходимо сначала использовать это свойство для определения области для текстового расположения как прямоугольник в x-и размерностях оси y системы локальной координаты текстового объекта. Тогда Вы используете
wrapped
,alignmentMode
, иtruncationMode
свойства, чтобы управлять, как SceneKit вмещает текст в контейнерный кадр. Текстовое расположение начинается в верхнем левом углу прямоугольника.Значение по умолчанию этого свойства
CGRectZero
, указание, что SceneKit должен разметить текст на одной строке, не переносясь или усечении.В зависимости от содержания и стиля текста и значений
wrapped
,alignmentMode
, иtruncationMode
свойства, текст может не соответствовать в контейнерном кадре после расположения, или это может занять меньшую область.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
Булево значение, указывающее, обертывает ли SceneKit длинные линии текста.
Объявление
Swift
var wrapped: Bool
Objective C
@property(nonatomic, getter=isWrapped) BOOL wrapped
Обсуждение
Когда Вы определяете прямоугольник расположения для текста с помощью
containerFrame
свойство, SceneKit используетwrapped
свойство, чтобы определить, переносится ли каждая строка текста, который более широк, чем прямоугольник расположения автоматически, на следующую строку.Значение по умолчанию этого свойства
NO
false
, указание, что не переносятся длинные линии текста. (При указании контейнерного кадра длинные линии текста расширяются вне его ширины.)Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
alignmentMode alignmentMode
СвойствоКонстанта, указывающая, как SceneKit горизонтально выравнивает каждую строку текста в ее контейнере.
Объявление
Swift
var alignmentMode: String!
Objective C
@property(nonatomic, copy) NSString *alignmentMode
Обсуждение
Когда Вы определяете прямоугольник расположения для текста с помощью
containerFrame
свойство, SceneKit используетalignmentMode
свойство для определения, куда каждая строка текста помещается горизонтально относительно прямоугольника расположения. Для возможных значений посмотритеHorizontal_alignment_modes
в ссылке класса CATextLayer.Значение по умолчанию этого свойства
kCAAlignmentNatural
, указание, что текст выровненный относительно выравнивания по умолчанию его сценария. (Например, слева направо языки выравниваются по левому краю.)Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
truncationMode truncationMode
СвойствоКонстанта, указывающая, как SceneKit усекает текст, который является слишком длинным для адаптации его контейнеру.
Объявление
Swift
var truncationMode: String!
Objective C
@property(nonatomic, copy) NSString *truncationMode
Обсуждение
Когда Вы определяете прямоугольник расположения для текста с помощью
containerFrame
свойство, SceneKit используетtruncationMode
свойство, чтобы определить, как разметить текст, не помещающийся в прямоугольник расположения. Для возможных значений посмотритеTruncation_modes
в ссылке класса CATextLayer.Значение по умолчанию этого свойства
kCATruncationNone
, указание, что SceneKit не должен усекать текст. Еслиwrapped
свойствоYES
true
, SceneKit продолжает автоматически обертывать каждую строку текста вне высоты прямоугольника расположения. Иначе, SceneKit не выводит на экран текст, который расширился бы вне прямоугольника расположения.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
Двумерная степень текста после расположения. (только для чтения)
Объявление
Swift
var textSize: CGSize { get }
Objective C
@property(nonatomic, readonly) CGSize textSize
Обсуждение
Это свойство сообщает о размере самого маленького ограничительного прямоугольника, содержащего текст.
Этот размер не обязательно соответствует размер прямоугольника расположения, указанного
containerFrame
свойство. Длинная организация текста может переполнить прямоугольника расположения, в зависимости от значенийwrapped
иtruncationMode
свойства и короткая строка текста могут поместиться в область, меньшую, чем прямоугольник расположения.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
Число, определяющее точность или гладкость текстовой геометрии.
Обсуждение
SceneKit использует линейные сегменты для приближения искривленных форм текстовых символов при преобразовании текста в трехмерную геометрию. (Эти сегменты становятся многоугольниками стороны, когда SceneKit вытесняет текст.) Более высокая плоскость оценивает результат в меньшем количестве сегментов, сокращая гладкость кривых и улучшая рендеринг производительности. Нижние значения приводят к большему количеству сегментов, увеличивая гладкость кривых по стоимости для рендеринга производительности.
Значение по умолчанию этого свойства
0.6
, указание, что линейные сегменты могут не отклониться от кривой больше чем 0,6 точками.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
extrusionDepth extrusionDepth
СвойствоСтепень вытесненного текста в направлении оси z. Animatable.
Объявление
Swift
var extrusionDepth: CGFloat
Objective C
@property(nonatomic) CGFloat extrusionDepth
Обсуждение
Геометрия центрируется вдоль оси z ее пространства локальной координаты. Например, если его глубина экструзии,
1.0
, геометрия расширяется от-0.5
к0.5
вдоль оси z.Глубина экструзии
0.0
(значение по умолчанию), создает плоскую, одностороннюю форму.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
chamferRadius chamferRadius
СвойствоШирина или глубина каждого закругленного кромки края. Animatable.
Обсуждение
Значение
0.0
(значение по умолчанию), или меньше не указывает закругления кромок — вытесненные стороны каждого символьного конца под прямым углом его передней и задней части.Максимальный радиус закругления кромок является половиной значения
extrusionDepth
свойство. В этом радиусе заканчивается переднее закругление кромок, где начинается заднее закругление кромок. Однако SceneKit может автоматически сократить радиус закругления кромок для символьных форм с тонкими обводками.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
См. также
-
Число подразделений использование SceneKit для создания каждого закругленного кромки края текстовой геометрии. Animatable.
Оператор осуждения
flatness
свойство управляет уровнем детализации и текста и его профиля закругления кромок.Объявление
Objective C
@property(nonatomic) NSInteger chamferSegmentCount
Обсуждение
Большее число сегментов добавляет больше данных вершины к геометрии, создавая более гладкую кривую для закругленных кромки краев по стоимости для рендеринга производительности.
Количество сегмента по умолчанию
10
. Установка значения этого свойства к числу меньше, чем1
результаты в неопределенном поведении.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.8 и позже.
Осуждаемый в OS X v10.9.
См. также
-
chamferProfile chamferProfile
СвойствоПуть, определяющий перекрестный частный контур каждого закругленного кромки края.
Объявление
Swift
@NSCopying var chamferProfile: NSBezierPath!
Objective C
@property(nonatomic, copy) NSBezierPath *chamferProfile
Обсуждение
Значение этого свойства должно быть двумерным путем, запускающимся в точке
{1, 0}
и окончание в точке{0, 1}
, определение контура формы вдоль ее вытесненных сторон. Если значение этого свойстваnil
и значениеchamferRadius
свойство больше, чем нуль, SceneKit использует профиль закругления кромок в форме круга четверти. Рисунок 2 иллюстрирует, что различные профили закругления кромок применились к форме тильды (~) символ.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
См. также