1

I have created slider in my app, I want to image and label both are slide same time.

This time image slider working proper but label slider do not work. i want a label text slide how to work. please help. Thank you

My code

- (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];
 }

Label slider code

 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];
    
    
}
Community
  • 1
  • 1

1 Answers1

2

Make globalCounter as global variable, make sure test data you get

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

    [self changeLable];

}

then

-(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];

                     }];


}
Jagveer Singh
  • 2,258
  • 19
  • 34