как анимировать вид uilabel таким образом, чтобы он продолжал двигаться с правой стороны экрана влево, в - PullRequest
0 голосов
/ 30 июня 2011

как анимировать представление uilabel таким образом, чтобы оно продолжало двигаться с правой стороны экрана влево,

Я использовал следующий код, но он не работал

 UILabel * lbl =[UILabel alloc]init];

        CALayer *cloud = [CALayer layer];
        cloud.contents = lbl.text;
        cloud.bounds = CGRectMake(0, 40, 100, 30);

        cloud.position = CGPointMake(-45 ,30);
        //cloud.position = CGPointMake(self.view.bounds.size.width / 2,cloudImage.size.height / 2);

        [self.view.layer addSublayer:cloud];

        CGPoint startPt = CGPointMake(self.view.bounds.size.width + cloud.bounds.size.width / 2,
                                      cloud.position.y);
        CGPoint endPt = CGPointMake(cloud.bounds.size.width / -2,
                                    cloud.position.y);

        CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position"];
        anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
        anim.fromValue = [NSValue valueWithCGPoint:startPt];
        anim.toValue = [NSValue valueWithCGPoint:endPt];
        anim.repeatCount = 1;
        anim.duration = 5.0;
        [cloud addAnimation:anim forKey:@"position"];

Ответы [ 2 ]

0 голосов
/ 30 июня 2011

Вы можете сделать это так:

    UILabel *label = [[UILabel alloc] initWithFrame:theRect];
[self.view addSubview:label];
[UIView animateWithDuration:0.5 
                      delay:0.0 
                    options:UIViewAnimationCurveEaseIn 
                 animations:^{label.bounds = targetRect;} 
                 completion:^(BOOL finished) { /* completion stuff */}];

Есть более одушевленные методы, которые принимают меньше параметров. Вы найдете их в документации UIView.

0 голосов
/ 30 июня 2011

Намного проще, если вы можете использовать animateWithDuration в ios4

UILabel * label = // новый ярлык

[UIView animateWithDuration: 1.0 анимаций: ^ {

   label.frame = //new frame

}];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...