我有一个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];
答案 0 :(得分:0)
正如我在您的代码中看到的那样,您正在使用UIImageView
动画,动画持续时间为30.f秒,因此要在更改任何图像时更改UILabel
文字,我需要设置NSTimer
与您为动画设置的持续时间相同的timeInterval
,在计时器的目标函数中,您可以相应地更改标签文本,为此您可能需要将currentIndex
保持为根据图像显示文字,做一些良好的条件,它会帮助你。
答案 1 :(得分:0)
您可以将description
的所有图片存储在NSArray
中,其顺序与在array
中添加图片的顺序相同。例如,array [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
声明为全局。