Вопрос по iphone – Как добавить шатер на этикетку

3

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

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

Ваш Ответ

2   ответа
4

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

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];
}
9

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 и свойствами точного позиционирования и размеров надписей и видов, чтобы все было правильно, но это должно быть довольно просто.

Похожие вопросы