-4

iPhoneアプリケーションで作業しています。テキストを移動するように、アプリでWebサービスからのテキスト/アラートを表示したい(左から右へのアニメーションでのスクロール)。これを行う方法がわかりませんか?

Web サービスからのアラート メッセージの長さはさまざまであり、アラート メッセージの数もさまざまです。UIViewController の上にある Scrolling でアニメーションを使用して 1 つずつ表示したいと考えています。iPhoneアプリでできる?可能であれば、誰かがこれを行うのを手伝ってください。わかりません。これについて私を助けてください。あなたの助けを楽しみにしています。前もって感謝します。

編集:私はstackoverflow.com/questions/1369314/how-to-add-moving-text-in-iphoneを試しました。下から上へのアニメーションテキスト用です。左右を表示したい。コードを変更しようとしましたが、これを修正できません。私を助けてください。ありがとう

4

2 に答える 2

1

これを試して :

必要に応じて、ラベルを X=0 および幅 = 320 Y および高さのデフォルト位置に設定します

アニメーションを実行する場所にこのコードを記述します

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:5];

lbl.frame = CGRectMake(320, lbl.frame.origin.y, lbl.frame.size.width, lbl.frame.size.height);

[UIView commitAnimations];

注: このコードは、CGRectMake 引数を右から左に変更するために左から右に変更するためのものです。

編集:(最初のコメントの後)

このアニメーション コードを、5 秒または 6 秒ごとに実行される NSTimer メソッドに入れます。そのメソッドでは、
そのメソッドは次のようになります。

  • ラベルのテキストを変更
  • デフォルトの位置を設定
  • アニメーション コード

幸運を

于 2013-01-08T12:52:57.123 に答える
1

次のコードを試してください

int i = 0;
float width = 0.0;
float origin_x = 0.0;

for (NSString *s in arrList)
{
    CGSize size;
    NSRange r;

    size = [s sizeWithFont:[UIFont fontWithName:@"*****" size:14.0] constrainedToSize:CGSizeMake(10000.0, 35.0) lineBreakMode:UILineBreakModeWordWrap];

    width = (size.width + 12.0 + 10.0);

    UIView *viewTopStory = [[[UIView alloc] initWithFrame:CGRectMake(origin_x, 0.0, width, 35.0)] autorelease];
    viewTopStory.backgroundColor = [UIColor clearColor];

    UIImageView *imgStar = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"star.png"] ] autorelease];
    imgStar.frame = CGRectMake(5, 8.0, 12, 12);
    [viewTopStory addSubview:imgStar];

    UILabel *lblTopstory = [[[UILabel alloc] initWithFrame:CGRectMake(22.0, 2.75, size.width, 30.0)] autorelease];
    lblTopstory.font = [UIFont fontWithName:@"*****" size:14.0];
    lblTopstory.backgroundColor = [UIColor clearColor];
    lblTopstory.text = s;
    [viewTopStory addSubview:lblTopstory];

    [_viewTopStory addSubview:viewTopStory];

    CGRect frame = _viewTopStory.frame;
    frame.size.width += width;
    _viewTopStory.frame = frame;

    origin_x += width;

    i++;
}

CAKeyframeAnimation *animation = [CAKeyframeAnimation
                                  animationWithKeyPath:@"transform"];
//NSMutableArray *marrframeValues = [[[NSMutableArray alloc]init] autorelease];
CATransform3D Translation0 = CATransform3DMakeTranslation(0.0, 0.0, 0.0);
CATransform3D Translation4 = CATransform3DMakeTranslation(_viewTopStory.frame.size.width, 0.0, 0.0);

NSArray *frameValues = [NSArray arrayWithObjects:[NSValue valueWithCATransform3D:Translation0], [NSValue valueWithCATransform3D:Translation4],
                        nil];

[animation setValues:frameValues];

NSArray *frameTimes = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.0], [NSNumber numberWithFloat:1.0], nil];

[animation setKeyTimes:frameTimes];

animation.fillMode = kCAFillModeBackwards;
//animation.autoreverses = YES;
animation.repeatCount = 10000;
animation.removedOnCompletion = NO;
animation.duration = 200.0;

[_viewTopStory.layer addAnimation:animation forKey:@"popup"];

_viewTopStory を最初の固定フレームで配置してから、テキストに応じてフレームを変更しました。

それがあなたを助けることを願っています。

于 2013-01-08T13:31:26.093 に答える