FadeOut/FadeIn标签文本更改转换
问题描述:
我试图改变一个UILabel文本的一个小过渡(淡出,改变文本,淡入),但我面临一些问题。这里是我的代码:FadeOut/FadeIn标签文本更改转换
- (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”功能标签文本...如何我可以将文本变量从第一个函数传递到第二个函数吗?
在此先感谢
答
您通过在上下文中的文字:
[UIView beginAnimations:nil context:text];
然后在您的fadeDidStop方法:
NSString *text = (NSString*) context;
的背景下,传递对象时要留意,确保他们得到适当保留。
答
...
[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];
}
正确,除了你可能想要将你的上下文实际设置为零以外的东西:) – rein
谢谢,它做到了! – Alexandre
好的呼叫控制。我的坏,这是一个深夜;-) – lyonanderson