簡體   English   中英

設置uiimageview動畫時如何更改uilabel文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM