Как добавить шатер на этикетку

У меня есть метка в верхней части моего UIView. Я отображаю некоторые сообщения на нем через массив с помощью таймера. Но теперь я хочу, чтобы эти сообщения отображались в стиле MARQUEE. У меня нет никакого способа начать. Любой исходный код, используемые методы, любой стиль анимации, любой другой подход. заранее спасибо

 Brad Larson♦13 июл. 2009 г., 16:44
This question очень близко к тому, что вы просите.
 Jasarien13 июл. 2009 г., 12:14
@MercerTraieste Не думаю, что этот вопрос касается HTML-тега «marquee». Речь идет о достижении того же стиля, что и у метки выделения, с использованием класса UILabel в iPhone SDK.
 Mercer Traieste13 июл. 2009 г., 12:06
Не является ли MARQUEE устаревшим? Вы не должны его использовать. Я считаю, что вы можете получить тот же эффект с помощью JavaScript.

Ответы на вопрос(2)

* Я создал вид контейнера.

messageView = [[UIView alloc] initWithFrame:CGRectMake(27, 0, 235, 19)];
[messageView setClipsToBounds:YES];//With This you prevent the animation to be drawn outside the bounds.

* Затем я создал UILabel с текстом, который будет отображаться и добавлен в мой контейнерный вид

lblTime = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 235, 19)];
[lblTime setBackgroundColor:[UIColor clearColor]];
[messageView addSubview:lblTime];

* Наконец-то я создал такую функцию:

- (void)sendNotification:(NSString*)txt{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:3.5];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:messageView cache:YES];
    [lblTime setText:txt];
    [lblTime setTextAlignment:UITextAlignmentLeft];
    lblTime.frame = CGRectMake(260, 0, 258, 19);
    [UIView commitAnimations];
}
Решение Вопроса

Set clipsToBounds to true on the UIView that your UILabel is sitting in. Then start a UIViewAnimations block (look in the docs for how to use it, its very simple) Create a new label with its frame set to a position that is outside of the bounds of the enclosing UIView set the previous label's position to somewhere to the left outside the bounds of the enclosing UIView set the next label's position to where the previous label used to be. commit the animations

Это должно дать вам скользящую анимацию, когда одна метка движется за пределы экрана, а новая метка движется по экрану.

Вам нужно поэкспериментировать со свойством animationDuration и свойствами точного позиционирования и размеров надписей и видов, чтобы все было правильно, но это должно быть довольно просто.

Ваш ответ на вопрос