0

drawRect を使用して NSString を描画していますが、一度描画した NSString をアニメーション化することはできますか? 3.0秒後にフェードイン/フェードアウトしたい。どうすればそうできますか?

4

2 に答える 2

1

UILabel を作成し、アニメーションを使用して希望を実行します

- (void)faceInLabel{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
    label.text = @"My String";
    [myView addSubview:label];
    label.alpha = 0;
    [UIView animateWithDuration:0.5 animations:^{
        label.alpha = 1;
    }
    completion:^(BOOL finished)
     {
         [NSTimer timerWithTimeInterval:3 target:self selector:@selector(fadeOutLabel) userInfo:nil   repeats:NO];
      }];
}
- (void)fadeOutLabel
{
    [UIView animateWithDuration:0.5 animations:^{
        label.alpha = 0;
    }];
}
于 2012-12-11T20:30:37.627 に答える
1

描画された文字列自体を直接フェードすることはできません。レイヤーをフェードしたり、ビューをフェードしたりできます。これらのいずれかに文字列を描画し、レイヤーまたはビューをフェードします。UILabelこれは通常、またはを使用して最も簡単にCATextLayer実行できますが、必要に応じて独自のレイヤーに描画し、それをフェードすることもできます。

于 2012-12-11T19:28:00.100 に答える