我为下面显示的选框编写了代码---
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:YES];
//NSTimer *timer=[[NSTimer alloc] initWithFireDate:nil interval:.5 target:self selector:@selector(marqueDisplay) userInfo:nil repeats:YES];
[NSTimer scheduledTimerWithTimeInterval:7.0
target:self
selector:@selector(marqueDisplay)
userInfo:nil
repeats:YES];
}
-(void)marqueDisplay
{
NSString *theMessage = @"Hello, my name is Enigo Montoya. You killed my father, prepare to die";
NSUInteger length = [theMessage length];
NSLog(@"%d",length);
if (length>69) {
messageSize = [theMessage sizeWithFont:[UIFont systemFontOfSize:14.0]];
messageView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, messageSize.width, 19)]; //x,y,width,height
[messageView setClipsToBounds:YES]; // With This you prevent the animation to be drawn outside the bounds.
[self.view addSubview:messageView];
lblTime = [[UILabel alloc] initWithFrame:CGRectMake(-400, 0, messageSize.width, 19)]; //x,y,width,height
[lblTime setBackgroundColor:[UIColor darkGrayColor]];
lblTime.font = [UIFont systemFontOfSize:14];
[lblTime setText:theMessage];
[lblTime setTextAlignment:UITextAlignmentLeft];
//lblTime.frame = CGRectMake(0, 0, messageSize.width, 19); //x,y,width,height
[messageView addSubview:lblTime];
float duration = messageSize.width / 60; // This determines the speed of the moving text.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:messageView cache:YES];
lblTime.frame = CGRectMake(messageSize.width, 0, messageSize.width, 19); //x,y,width,height
[UIView commitAnimations];
}
}
这可行,但这不能满足我的需要...... 实际上文本没有以循环形式移动, 我希望如果字符串长度> 60然后选框开始并附加字符串。
Plz帮我解决这个问题.. 提前谢谢。
答案 0 :(得分:0)
在这里你https://github.com/jeffhodnett/JHTickerView
这是另一个https://github.com/ConceitedCode/CCScrollingLabel
我希望你的问题能够得到解决。