Изменяемый размер UILabel, который прокручивается по экрану - PullRequest
10 голосов
/ 10 января 2009

Правильно, я пытаюсь получить ярлык с текстом (уже очевидно), который прокручивается по экрану.

Текст, который вводится в метку, выполняется UITextField и UIButton. Это обновляет нормально.

Но я пытаюсь изменить размер UILabel в соответствии с объемом вводимого текста, чтобы по всему экрану прокручивалось ВСЕ много текста.

Это код, который у меня есть на данный момент для метки прокрутки:

[lblMessage setText: txtEnter.text];

CABasicAnimation *scrollText;

scrollText=[CABasicAnimation animationWithKeyPath:@"position.x"];
scrollText.duration = 3.0;
scrollText.repeatCount = 10000;
scrollText.autoreverses = NO;
scrollText.fromValue = [NSNumber numberWithFloat:500];
scrollText.toValue = [NSNumber numberWithFloat:-120.0];

[[lblMessage layer] addAnimation:scrollText forKey:@"scrollTextKey"];

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

Он также вырезает текст из-за того, что метка имеет один размер .. Я не знаю, как это изменить.

Заранее спасибо.

Дом

Ответы [ 2 ]

7 голосов
/ 10 января 2009

Я полагаю, что что-то похожее на решение этого вопроса подойдет для этого случая.

Вы можете встроить UILabel в UIScrollView с UIScrollView, установленным на максимальный размер метки, которую вы хотите отобразить на экране за один раз. UIScrollView должен был бы отключить свои индикаторы прокрутки, используя его showShorizontScrollIndicator и показывает свойства VerticalScrollIndicator. При изменении текста вы можете сделать следующее:

[lblMessage setText: txtEnter.text];
[lblMessage sizeToFit];
scrollView.contentSize = lblMessage.frame.size;

с последующим кодом анимации панорамирования, как описано в приведенном выше вопросе, с панорамой, которая должна быть панорамирована как крайняя правая часть UILabel. Это заставит текст прокручиваться с постоянной скоростью по всей метке. Если вы хотите, чтобы метка прокручивалась обратно в начало, вы можете использовать UIView setAnimationRepeatAutoreverses: и setAnimationRepeatCount: методы в начале вашего блока анимации.

2 голосов
/ 10 января 2009

Изменение размера этикетки отлично сработало, спасибо!

Теперь я поместил ярлык в представление прокрутки, и у меня появилось это отображение ... но теперь я не уверен в том, какие именно анимации добавить к этому. Я попробовал некоторые из них по ссылке, которую вы мне дали, но они не работают.

РЕДАКТИРОВАТЬ: не имеет значения, у меня все это работает сейчас.

CGPointMake (x, x) - это то, что мне нужно для contentOffset.

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