Перестраиваемый UILabel, который прокручивается по экрану
Правильно, я пытаюсь получить ярлык с текстом в нем (сделано уже очевидно), который прокручивается по экрану.
Текст, вводимый в метку, выполняется с помощью 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"];
Проблема в том, что иногда начинается прокрутка в середине экрана и иногда исчезает, прежде чем она полностью пройдет.
Он также сокращает текст из-за того, что метка имеет один размер. Я не знаю, как это изменить.
Спасибо заранее.
Dom
Ответы
Ответ 1
Я считаю, что для этого случая будет работать что-то похожее на решение для этого вопроса.
Вы можете встраивать UILabel в UIScrollView, при этом UIScrollView устанавливается на максимальный размер ярлыка, который вы хотите отображать на экране за один раз. UIScrollView должен будет отключить индикаторы прокрутки, используя его showHorizontalScrollIndicator и showVerticalScrollIndicator. При изменении текста вы можете сделать следующее:
[lblMessage setText: txtEnter.text];
[lblMessage sizeToFit];
scrollView.contentSize = lblMessage.frame.size;
за которым следует код анимации панорамирования, как описано в вышеприведенном вопросе, причем рамка должна быть отображена как крайняя справа от UILabel. Это приведет к тому, что текст будет прокручиваться с постоянной скоростью по метке. Если вы хотите, чтобы метка прокручивалась назад до начала, вы можете использовать UIView setAnimationRepeatAutoreverses: и setAnimationRepeatCount: методы в начале вашего блока анимации.
Ответ 2
Смена ярлыка произвела большое спасибо!
Теперь я поместил метку в scrollview, и у меня появилось это, но я теперь не уверен в точной анимации, чтобы добавить к этому. Я попробовал некоторые из них по ссылке, которую вы мне дали, но они не работают.
EDIT: Nevermind, теперь у меня все работает.
CGPointMake (x, x) - это то, что мне нужно для contentOffset.