0


1

ラベルテキスト変更のFadeOut / FadeInトランジション

私はUILabelのテキストを少し遷移させて変更しようとしています(フェードアウト、テキストの変更、フェードイン)が、いくつかの問題に直面しています。 これが私のコードです:

- (void) setTextWithFade:(NSString *)text {
    [self setAlpha:1];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:.25];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(fadeDidStop:finished:context:)];
    [self setAlpha:0];
    [UIView commitAnimations];
}

- (void)fadeDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:.25];
    [self setAlpha:1];
    [UIView commitAnimations];
}

このコードは「機能します」(効果はうまく機能しています)が、「fadeDidStop」関数でラベルテキストを変更する方法がわかりません…​ 最初の関数から2番目の関数にテキスト変数を「渡す」にはどうすればよいですか?

前もって感謝します

3 Answer


2


コンテキストでテキストを渡します。

[UIView beginAnimations:nil context:text];

次に、fadeDidStopメソッドで:

NSString *text = (NSString*) context;

コンテキストでオブジェクトを渡すときは注意してください、それらが適切に保持されていることを確認してください。


0


...
 [UIView beginAnimations:nil context:[text retain]];
...


- (void)fadeDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    self.text = (NSStrinhg *)context;
    [context release];
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:.25];
    [self setAlpha:1];
    [UIView commitAnimations];
}


-1


おそらく最も簡単な方法は、.hファイルでNSStringオブジェクトを宣言し、それを使用して変更するテキストを保存することです。