我在標籤上顯示的文字並未完全顯示,因此我希望文字從左至右滾動標籤。請不要將numberoflines屬性建議爲解決方案。如何在標籤上滾動文字,如跑馬燈
2
A
回答
0
如果你使用這條線在標籤中出現完整的字符串 CGSize labelsize = [label.text sizeWithFont:label.font]; 然後在CGRectMark(10,10,label.width,100);
選取框基於滾動內容大小,如果你設置內容大小(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 2013-03-13 06:24:43
相關問題
- 1. UI5 - 如何獲得跑馬燈文字
- 2. 跑馬燈標籤的缺點
- 3. iOS中標籤的跑馬燈效果
- 4. 如何在vb.net中有跑馬燈種類的文字?
- 5. 文字跑馬燈不工作
- 6. 跑馬燈在android系統
- 7. 跑馬燈,更改內容dinamically並重新開始滾動
- 8. jQuery的橫向滑動像跑馬燈
- 9. JQuery的跑馬燈滑動的頂部
- 10. jQuery的像跑馬燈
- 11. 跑馬燈在IE中不工作6
- 12. 跑馬燈在模擬器上工作,但不在設備上
- 13. 如何將標題標籤中的滾動文字?
- 14. 如何從跑馬燈中刪除尾部空格?
- 15. 無法獲得跑馬燈效果
- 16. Jquery跑馬燈和手風琴碰撞
- 17. Remy Sharp的Jquery跑馬燈用法
- 18. Android TextView - 跑馬燈CPU負載
- 19. 的Android TextView的跑馬燈編程
- 20. Android的通知跑馬燈不工作
- 21. 的Android TextView的跑馬燈不工作
- 22. 爲HTML網頁跑馬燈建議
- 23. 跑馬燈進度條有問題
- 24. TextView的跑馬燈不工作
- 25. 使用CSS有跑馬燈效果
- 26. 跑馬燈循環不是無限的
- 27. jquery,跑馬燈定時器停止/去
- 28. 我如何爲每個文本行做跑馬燈停止延遲
- 29. 按鈕跑馬燈停止一旦標題欄變爲(幫助)
- 30. 跑馬燈更換不上的Safari 5.1.7(視窗10)
使用的UIScrollView – 2011-02-28 10:06:08
但我認爲他想要的文本自動滾動? – occulus 2011-02-28 10:51:46