开发者

How can i use marquee in my Application?

I wrote the code for marquee shown below---

- (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:YE开发者_StackOverflow社区S]; // 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];  
    }
}

this works but this is not satisfying my need... Actually the text is not moving in loop form, i want that if string length > 60 then marquee start and appended the string.

Plz help me to solve this problem.. Thanks in advance.


Here you go https://github.com/jeffhodnett/JHTickerView

here is another https://github.com/ConceitedCode/CCScrollingLabel

I hope your problem will be solved.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜