Вопрос по iphone, objective-c – Метка автопрокрутки в iphone

2

У меня есть UILabel, которую я хочу прокрутить как HTML-тэг в HTML, как мне это сделать?

<code>#define LEFTSCROLLDIRECTION 0
#define RIGHTSCROLLDIRECTION 1

MarqueeLabel *marquee = [[MarqueeLabel alloc] initWithFrame:CGRectMake(10, 10, 300, 30)];
label.scrollDirection = LEFTSCROLLDIRECTION;
[self.view addSubview:marquee];
</code>
Редактироват

Я нашелэт класс для этого, который, кажется, сначала работает ..

Но в этом есть ошибка ... если я переместлюсь вперед в UINavigationController и через некоторое время выскочит этот pressedViewController, autoScrollLabel прекратит анимацию ..

<code>AutoScrollLabel *autoScrollLabel = [[AutoScrollLabel alloc] init];
autoScrollLabel.text = @"Hi Mom!  How are you?  I really ought to write more often.";
autoScrollLabel.textColor = [UIColor yellowColor];
</code>

Ваш Ответ

4   ответа
3

эт компонент с открытым исходным кодом, фактически называется MarqueeLabel.

Это действительно легко.

2

чтобы дать ему место,

и я подключил объект в ViewController.h

IBOutlet UIView *marqueeView;

После этого в ViewController.m в метод viewDidLoad я написал:

MarqueeLabel *marqueeLabel = [[MarqueeLabel alloc] initWithFrame:CGRectMake(0, 0, 315, 20) duration:8.0 andFadeLength:10.0f];
marqueeLabel.text = @"marquee text.. this text will scroll";
[marqueeView addSubview:marqueeLabel];

Надеюсь, ты сможешь быть полезным.

1

но использование блока, вероятно, ваш лучший выбо

MarqueeLabel *marquee == ...
[UIView animateWithDuration:5.0 animations:^{ 
    CGRect frame = marquee.frame;
    frame.origin.x = -50.0f
    marquee.frame = frame;
}]:

Это будет иметь эффект «прокрутки» влево на 50 пикселей в течение 5 секунд. Вам нужно будет откорректировать размер вмещающего представления, а также ширину выделения.

Если вы хотите, чтобы свиток слева появился сразу же справа, вы можете добиться этого с помощью второго выделения, начало которого начинается с x, а значение 320 начинается с того момента, как первое выделение x начинается с 0.

Я хочу, чтобы он прокручивался бесконечно .. Yogesh Maheshwari
Тебе нужно проделать дополнительную работу. Не должно быть слишком сложно. bbarnhart
Подсказка: посмотрите на UIView animateWithDuration: анимации: завершение: bbarnhart
Какое уведомление я получу, когда на экране появится представление .. (В моем подклассе UIView) Yogesh Maheshwari
Не уверен, что получишь уведомление, когда на экране появится UIView. bbarnhart
1

    [UIView animateKeyframesWithDuration:5 delay:0 options:UIViewKeyframeAnimationOptionRepeat|UIViewAnimationOptionCurveLinear animations:^{
//_mlabel is my created sample label
        _mlabel.frame=CGRectMake(0-(self.view.frame.size.width), _mlabel.frame.origin.y, _mlabel.frame.size.width, _mlabel.frame.size.height);

    } completion:nil];

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

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