Мне интересно, как можно сделать перемещение текста справа налево, как «текущая новостная лента в телевизоре»?
Я могу сделать текст, перемещающийся справа налево (или любой другой) в UILabel, но это перемещение анимации должно быть бесконечным циклом, а не только один раз.IOS: сделать бегущий текст «бегущей новостной линией в ТВ»?
2
A
ответ
5
Вот некоторые из них:
- https://github.com/caydenliew/CLTickerView
- https://github.com/malcommac/DMScrollingTicker
- https://github.com/MugunthKumar/MKTickerViewDemo
- https://github.com/jeffhodnett/JHTickerView
- https://github.com/cbess/AutoScrollLabel
Там, наверное, больше на Cocoa Controls.
+0
Отлично! Большое спасибо:) – boder
1
Как насчет так:
-(void) animate {
label.center = CGPointMake(self.view.bounds.size.width + label.bounds.size.width/2, label.center.y);
[UIView animateWithDuration:20 delay:0 options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionRepeat) animations:^{
label.center = CGPointMake(0 - label.bounds.size.width/2, label.center.y);
} completion:nil];
}
0
// CrawlView.h
#import <UIKit/UIKit.h>
@interface CrawlView : UIScrollView
@property (assign, nonatomic) NSTimeInterval period;
@property (strong, nonatomic) NSMutableArray *messages;
- (void)go;
@end
// CrawlView.m
#define kWORD_SPACE 16.0f
#import "CrawlView.h"
@interface CrawlView()
@property (assign, nonatomic) CGFloat messagesWidth;
@end
@implementation CrawlView
- (void)buildSubviews {
for (UIView *subview in [self subviews]) {
if ([subview isKindOfClass:[UILabel self]]) {
[subview removeFromSuperview];
}
}
CGFloat xPos = kWORD_SPACE;
for (NSString *message in self.messages) {
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.text = message;
CGSize size = [message sizeWithFont:label.font];
CGFloat width = size.width + kWORD_SPACE;
label.frame = CGRectMake(xPos, 0.0, width, self.frame.size.height);
[self addSubview:label];
xPos += width;
}
self.messagesWidth = xPos;
self.contentSize = CGSizeMake(xPos, self.frame.size.height);
self.contentOffset = CGPointMake(-self.frame.size.width, 0.0);
}
- (void)go {
[self buildSubviews];
if (!self.period) self.period = self.messagesWidth/100;
[UIView animateWithDuration:self.period
delay:0.0
options:UIViewAnimationOptionCurveLinear |UIViewAnimationOptionRepeat
animations:^{
self.contentOffset = CGPointMake(self.messagesWidth, 0.0);
} completion:^(BOOL finished){
[self buildSubviews];}];
}
@end
Смежные вопросы
- 1. Выровнять текст параллельно с линией
- 2. Сканировать новостной сайт и получать новостной контент
- 3. Текст с белой линией в середине CSS
- 4. текст над горизонтальной линией ... Как сделать градиент линии?
- 5. Windows Phone - новостной блок
- 6. Сделать работу с линией связи
- 7. Сканирование по бегущей звезде
- 8. Совокупность бегущей суммы в таблице?
- 9. «Бегущий» средневзвешенный
- 10. Как сделать тесты TestGG с огурцами в «Результаты бегущей сюиты»?
- 11. ellipsize = «бегущей строки» не работает в блесны
- 12. плагин для создания бегущей строки как текст с помощью JQuery
- 13. Проблема в бегущей петле php
- 14. бегущей строки без зазора
- 15. Прерывание бегущей нити
- 16. Как сделать бегущий счет анимации в iphone sdk
- 17. Публикация Facebook в новостной поток
- 18. Google ТВ выпуск
- 19. Пробел между двойной горизонтальной линией, обертывающей текст
- 20. Инфраструктура для «новостной ленты»
- 21. Прерывание бегущей пружины mybatis transaction
- 22. Сайт новостной ленты
- 23. jquery/css: сделать текст внутри div прокрутите по горизонтали, как новостной тикер, нет плагина
- 24. Обработка ТВ-звука с помощью карты захвата ТВ
- 25. как сделать полный текст прокрутки - ios
- 26. Нужна jquery newsticker (прокрутка/бегущий текст) по горизонтали
- 27. бегущий шейдерный код в emscripten
- 28. Надежность тв-агента Fluentd
- 29. Программа для ТВ-тюнера
- 30. Потоковое видео на ТВ
возможно дубликат http://stackoverflow.com/questions/1118626/how-to-add-marquee-to-a-label – iPatel
HTTP: // stackoverflow.com/questions/10327667/uilabel-text-glow-and-marquee – iPatel