如何同时滑动标签文字和图像

时间:2016-09-07 05:17:30

标签: ios objective-c iphone uiimageview uilabel

我在我的应用程序中创建了滑块,我想要将图像和标签同时滑动。

此时图像滑块正常工作但标签滑块不起作用。我想要一个标签文本幻灯片如何工作。请帮忙。谢谢

我的代码

- (void)viewDidLoad {
[super viewDidLoad];

NSURLRequest *req=[[NSURLRequest alloc]initWithURL:[NSURL URLWithString:@"http://edutimeapp.com/toshow/chamber-of-commerc/ws/fetch_event.php"]];
response =[[NSMutableData alloc]init];
[NSURLConnection connectionWithRequest:req delegate:self];
 }

 -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
 {
[response appendData:data];
NSLog(@"error receving data %@",response);
 }

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{

 }
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSError *error;

 NSLog(@"Error in receiving data %@",error);
 NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves  error:&error];
NSLog(@"response data %@",json);

NSArray *results = [json objectForKey:@"status"];
img_ary =[[results valueForKey:@"slider"]valueForKey:@"imageurl"];
 NSLog(@"images fetch %@",img_ary);

des_ary =[[results valueForKey:@"slider"]valueForKey:@"title"];
NSLog(@"label text %@",des_ary);

for (NSString *line in des_ary) {
    NSLog(@"%@", line);

    self.label.text=line;

}

NSMutableArray *arrayImages = [[NSMutableArray alloc] init];

for (NSString *strImageUrl in img_ary) {
    [arrayImages addObject:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:strImageUrl]]]];
}

self.img.animationImages = arrayImages;
_img.animationDuration=10;
_img.animationRepeatCount = 0;
[_img startAnimating];
 }

标签滑块代码

 NSMutableArray *arraylabel = [[NSMutableArray alloc] init];

for (NSString *line in des_ary) {
    NSLog(@"%@", line);
    [arraylabel addObject:line];
    self.label.text=arraylabel;
    [self.label sizeToFit];
    self.label.center = self.view.center;
    self.label.textAlignment = NSTextAlignmentLeft;

    [UIView animateWithDuration:0.5
                     animations:^{
                         CGRect frame = self.label.frame;
                         frame.origin.x = 10;
                         self.label.frame = frame;
                     } completion:nil];


}

1 个答案:

答案 0 :(得分:2)

将globalCounter作为全局变量,确保获得测试数据

globalCounter=0;
if(nameArray.count>0){

    [self changeLable];

}

然后

-(void)changeLable{

    if(!(globalCounter<nameArray.count)){
        return;
    }


    NSLog(@"globalCounter %d",globalCounter);

    [UIView animateWithDuration:1
                          delay:0.5
                        options: UIViewAnimationOptionTransitionCrossDissolve
                     animations:^{


                     }
                     completion:^(BOOL finished) {

                         [lblTitle setText:[nameArray objectAtIndex:globalCounter]];
                         globalCounter++;

                         [self performSelector:@selector(changeLable) withObject:nil afterDelay:1];

                     }];


}