[英]How to change the uilabel text when animate an uiimageview
我有一个可以对图像进行动画处理的UIimageview,还有一个用于描述图像的uilabel,当我们更改图像时如何更改标签内容
for (int i=0; i<[mutable_banner count]; i=i+3)
{
NSLog(@"--------%d----------%@",i,[mutable_banner objectAtIndex:i]);
addr = [mutable_banner objectAtIndex:i];
addr = [addr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
data_banner = [NSData dataWithContentsOfURL:[NSURL URLWithString:addr ] ];
img_banner = [[UIImage alloc] initWithData:data_banner];
[images addObject:img_banner];
}
array = [[NSArray alloc] initWithArray:images];
NSLog(@"-array-----%d",[array count]);
imgview_banner = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10,364 ,164)];//364.164
// [imgview_banner setImage:[UIImage imageWithData:data_banner ]];
imgview_banner.animationImages=images;
imgview_banner.animationDuration=30.0f;
[imgview_banner startAnimating ];
[view_banner addSubview:imgview_banner];
正如我在您的代码中看到的那样,您正在使用UIImageView
动画,动画持续时间为30.f秒,因此要在更改任何图像时更改UILabel
文本,您需要将NSTimer
设置为timeInterval
设置动画,在计时器的目标函数中,您可以相应地更改标签文本,为此,您可能需要保持currentIndex
以根据图像显示文本,并做一些良好的工作,它将为您提供帮助。
您可以按照在array
添加图像的顺序,将所有图像的description
存储在NSArray
中。 例如,imageDescription [0]中的array [0]的描述以及类似内容。
然后,当您开始图像动画时,连同调用此方法
index = 0;
[NSTimer scheduledTimerWithTimeInterval:30.0f target:self selector:@selector(showDesc) userInfo:nil repeats:YES];
[imgview_banner startAnimating ];
然后定义showDesc()
方法,如下所示:
- (void)showDesc {
self.label.text = imageDescription[index];
index ++;
if (index == array.count) {
index = 0;
}
}
将变量index
声明为全局。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.