Кажется, невозможно использовать текстовый набор, атрибутированную строку и менеджер компоновки со Sprit Kit SKLabelNode.
Интересно, как игра Sprite Kit отображает длинный текст, который нужно разбить на несколько строк и атрибутивную строку?
Кажется, невозможно использовать текстовый набор, атрибутированную строку и менеджер компоновки со Sprit Kit SKLabelNode.
Интересно, как игра Sprite Kit отображает длинный текст, который нужно разбить на несколько строк и атрибутивную строку?
Строки с атрибутами и перенос строк не поддерживаются SKLabelNode.
Боюсь, если вам это нужно, вам решать, как это реализовать. Вы можете использовать несколько узлов меток для отображения нескольких строк и, возможно, написать собственный инструмент, который нарезает атрибутированные строки новой строки на несколько меток с интервалом между строками и соответствующим цветом. Возможно, такая библиотека уже существует.
Альтернативой является отображение обычного текстового представления поверх SKView.
Вы можете проверить ASAttributedLabelNode, реализацию SKLabelNode с поддержкой строк с атрибутами.
https://github.com/alex-alex/ASAttributedLabelNode
Начиная с iOS 11 SKLabelNode, кажется, поддерживает строки с атрибутами и автоматические разрывы строк. В документацию класса добавлены новые свойства:
Имейте в виду: обновления SpriteKit имеют историю введения новых функций с ошибками, поэтому вам, вероятно, придется протестировать их самостоятельно.
Примечание о производительности SKLabelNode:
Есть несколько советов, что вы должны преобразовать свои метки в текстуры и использовать SKSpriteNodes для их рендеринга для повышения производительности. Я не знаю, насколько это на самом деле имеет значение, но это может иметь смысл для небольших меток с текстом, который вы никогда не меняете.
SKView имеет функцию-член, которая преобразует узел в текстуру:
- (SKTexture *)textureFromNode:(SKNode *)node;