У меня есть текст на этикетке, который не отображается полностью, поэтому я хочу, чтобы текст прокручивался по метке слева направо. Пожалуйста, не предлагайте свойство numberoflines в качестве решения.как прокручивать текст на ярлыке, как marquee
2
A
ответ
0
если вы видите полную строку в метке, используя эту строку CGSize labelsize = [label.text sizeWithFont: label.font]; , затем в CGRectMark (10,10, label.width, 100);
marquee основан на размере содержимого прокрутки, если u задан размер содержимого (200,300), означают, что это значение сравнивается с значением x и y, чтобы установить область выделения.
отношении CNSivakumar
2
FWIW, я сделал что-то подобное, используя 2 этикетки в целях прокрутки ...
#import <UIKit/UIKit.h>
@interface ScrolledTextView : UIScrollView
{
UILabel *label1;
UILabel *label2;
NSString *_text;
NSString *newText;
CGFloat textWidth;
BOOL animating;
BOOL needToUpdateText;
}
@property (nonatomic, copy, setter = setText:) NSString *text;
@property (nonatomic, assign) NSTimeInterval scrollInterval;
@property (nonatomic, assign) NSTimeInterval scrollDuration;
- (id) initWithFrame:(CGRect)frame andText : (NSString*) text;
- (void) setText:(NSString *)text;
- (BOOL) textFitsInFrame;
@implementation ScrolledTextView
@synthesize text = _text;
@synthesize scrollDuration;
@synthesize scrollInterval;
- (void) adjustLabelsForNewText : (NSString*) text andParentFrame : (CGRect) frame
{
_text = [NSString stringWithFormat:@"%@ ", text];
CGSize textSize = [[self text] sizeWithFont:[label1 font] constrainedToSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX) lineBreakMode:UILineBreakModeClip];
[self setContentSize:CGSizeMake(textSize.width * 2, textSize.height)];
textWidth = textSize.width;
[label1 setFrame:CGRectMake(0.0, 0.0, textWidth, frame.size.height)];
[label1 setText:[self text]];
if([self textFitsInFrame])
{
[label2 removeFromSuperview];
}
else
{
[label2 setFrame:CGRectMake([label1 frame].size.width, 0.0, textWidth, frame.size.height)];
[label2 setText:[self text]];
if(! [[self subviews] containsObject:label2])
{
[self addSubview:label2];
}
[self beginScrolling];
}
}
- (id) initWithFrame:(CGRect)frame andText : (NSString*) text
{
self = [super initWithFrame:frame];
if (self) {
[self setClipsToBounds:YES];
animating = NO;
needToUpdateText = NO;
[self setScrollDuration:10.0];
[self setScrollInterval:2.0];
label1 = [UILabel new];
label2 = [UILabel new];
[label1 setBackgroundColor:[UIColor clearColor]];
[label2 setBackgroundColor:[UIColor clearColor]];
[self addSubview:label1];
[self adjustLabelsForNewText:text andParentFrame:frame];
}
return self;
}
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
if(needToUpdateText)
{
animating = NO;
needToUpdateText = NO;
[self adjustLabelsForNewText:@"" andParentFrame:[self frame]];
[self adjustLabelsForNewText:newText andParentFrame:[self frame]];
newText = nil;
return;
}
[self setContentOffset:CGPointMake(0.0, 0.0)];
[self beginScrolling];
}
- (void) beginScrolling
{
animating = YES;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:[self scrollDuration]];
[UIView setAnimationDelay:[self scrollInterval]];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[self setContentOffset:CGPointMake(textWidth, 0.0)];
[UIView commitAnimations];
}
- (BOOL) textFitsInFrame
{
return textWidth <= [self frame].size.width;
}
- (void) setText:(NSString *)text
{
if(animating)
{
newText = text;
needToUpdateText = YES;
}
else
{
[self adjustLabelsForNewText:text andParentFrame:[self frame]];
}
}
+1
Нельзя ли реализовать textAlignment и textcolor с помощью этого кода>? – Praveenkumar
Смежные вопросы
- 1. Как я могу прокручивать текст на ярлыке tk/tinker python?
- 2. Всегда горизонтально прокручивать изображения (marquee)
- 3. Как сделать текст marquee динамически
- 4. Как прокручивать текст плавно с помощью HTML5
- 5. Как я могу сосредоточить текст на ярлыке?
- 6. Как переписать текст на ярлыке в Tkinter
- 7. Как рандомизировать текст в ярлыке
- 8. Как обновить текст в ярлыке?
- 9. Текст Refreshing Marquee на Android
- 10. Как прокручивать текст на дисплее клиента/полюсе
- 11. Полоса прокрутки на ярлыке
- 12. UILabel auto scroll как marquee
- 13. автоматически прокручивать текст по горизонтали
- 14. Как прокручивать текст со стрелкой?
- 15. Как сделать текст marquee в tableview
- 16. Android создать текст marquee
- 17. Как установить текст в ярлыке справа?
- 18. Marquee Текст WITL мульти содержание
- 19. Показать текст в ярлыке, как Примечания
- 20. Как выровнять текст в ярлыке с правой стороны?
- 21. динамически меняет текст marquee без изменения позиции marquee
- 22. Строка marquee (прокрутить текст влево)
- 23. MKAnnotationView показывает другой текст на ярлыке
- 24. Как сделать текст на ярлыке в центре в сенчаном контакте
- 25. Как скрыть текст на ярлыке в Obj-C?
- 26. Как динамически установить текст на ярлыке внутри шаблона EditForm?
- 27. Swift: Как открыть ссылку при нажатии на текст в ярлыке?
- 28. Как прокручивать текст в подполе Python/Curses?
- 29. ApplescriptObjC - текст текстового поля на ярлыке
- 30. текст-украшение на ярлыке не работает
использовать UIScrollView –
Но я предполагаю, что он хочет, чтобы текст автоматически прокручивать? – occulus