如何在为uiimageview设置动画时更改uilabel文本

时间:2013-06-25 07:14:03

标签: ios uilabel

我有一个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];

2 个答案:

答案 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声明为全局。