Как анимировать текст, чтобы слово за словом отображалось в приложении для iphone? - PullRequest
3 голосов
/ 14 февраля 2011

Я хочу создать учебную страницу с главным героем, дающим речевые пузыри. Предположим, я использую UILabel / UITextView, чтобы содержать эти речи, как мне анимировать текст, чтобы он отображался слово за словом, как то, что мы видим в сцене с учебником RPG?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Просмотрите текст, который вы планируете, и разбейте его на массив так, чтобы каждый элемент массива был блоком текста, который вы хотите, чтобы ваш персонаж произнес.

(Например, элемент 0 может быть @ "Эй, добро пожаловать в учебник!", Элемент 1 может быть @ "Цель этой игры ..." и т. Д.)

Затем я бы порекомендовал использовать UIButton для циклического перемещения по тексту, чтобы ваш персонаж продолжал «говорить», когда пользователь касается экрана.

Чтобы сделать это, просто создайте кнопку в Интерфейсном конструкторе / XCode, увеличьте ее, чтобы она включала весь экран, и установите режим отображения на пользовательский, делая его невидимым.

Возможно, вы захотите отправить его обратно (команда находится под Layout), чтобы вы могли взаимодействовать с остальным файлом nib.

Свяжите кнопку с функцией IBAction следующим образом:

-(IBAction) continueTutorial{
    i ++; //Here i is an NSInteger from your .h file, set it to 0 when the tutorial starts
    YourUILabel.text = [yourArray objectAtIndex: i];
}

Надеюсь, это поможет!

1 голос
/ 14 февраля 2011

Просмотрите текст вручную и отметьте каждое слово или фразу по позиции (n-й символ и т. Д.) И по времени, в которое вы хотите, чтобы он отображался относительно последнего. Тогда используйте NSTimer. Каждый раз, когда срабатывает таймер, поместите все большую и большую подстроку (до nth-1 символа) из вашего текста в содержимое вашего текстового представления. Затем (пере) установите таймер для следующего слова или фразы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...