views:

17

answers:

0

i am working on an application where i am using LIBXML parser for parsing and nsurl for loading image as i am getting image url after parsing.

- (void)parser:(myLIBXMLParser *)parserP didParseObjects:(NSArray *)parsedObjects{

if(!isScrollViewCreated){
    LibParser *p=(LibParser*)parserP;
    NSUInteger i=[[p.dOtherValues valueForKey:@"TotalCount"] intValue];
    //i=kTotalElements;
    NSLog(@"%d",i);
    scr=[[UIScrollView alloc] initWithFrame:CGRectMake(0,60,320,350)];
    NSUInteger rows=(i%2==0)?(i/2):(i/2)+1;
    NSLog(@"================rows:%d==========",rows);
    [scr setContentSize:CGSizeMake((172*rows)+32,330)];
    //NSLog(@"---------------Scr size.width==%d",[scr.contentSize.width]);
    //NSLog(@"SCr size Width=%f   =============",[scr.contentSize.width]);
    scr.tag=kScrollTag;
    [self.view addSubview:scr];
    isScrollViewCreated=YES;
}

NSUInteger prevCount=[objects count];
NSLog(@"--------------------------------prev count=%d--------------------------------",prevCount);

[objects addObjectsFromArray:parsedObjects];

NSUInteger currentCount=[objects count];
NSLog(@"---------------------------------Current count=%d----------------------------",currentCount);

for (int i = prevCount; i < currentCount; i++) {
    ItemVCtr *nxt=[[ItemVCtr alloc] initWithNibName:@"ItemVCtr" bundle:nil];
    NSUInteger rowNo=(((i+1)%2)==0)?((i+1)/2):(((i+1)/2)+1);
    NSLog(@"---------------------------------row NO=%d----------------------------",rowNo);
    CGFloat yDis=(((i+1)%2)==0)?180:10.0;
    CGFloat xDis=((rowNo-1)==0)?0:((rowNo-1)*160);
    NSLog(@"---------------------------------Xdis count=%f----------------------------",xDis);
    [arrCCell addObject:nxt];
    scr=(UIScrollView*)[self.view viewWithTag:kScrollTag];
    ItemVCtr *v=(ItemVCtr*)[arrCCell objectAtIndex:i];
    [v setDMiddle:[objects objectAtIndex:i]];

    nxt.view.frame=CGRectMake(xDis,yDis, 112, 130);
    [scr addSubview:nxt.view];
    if([[[objects  objectAtIndex:i]valueForKey:@"Name"] length]>0){
        UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(xDis,yDis+130,112,20)];
        myLabel.text =[NSString stringWithFormat:@"%@",[[objects  objectAtIndex:i]valueForKey:@"Name"]];
        [myLabel setFont:[UIFont fontWithName:@"Arial" size:11]];
        myLabel.backgroundColor=[UIColor clearColor];
        [scr addSubview:myLabel];
    }

    if([[[objects  objectAtIndex:i]valueForKey:@"BrandName"]length]>0){
        UILabel *myLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(xDis,yDis+145,112,20)];
        myLabel1.text =[NSString stringWithFormat:@"%@",[[objects  objectAtIndex:i]valueForKey:@"BrandName"]];
        [myLabel1 setFont:[UIFont fontWithName:@"Arial" size:11]];
        myLabel1.backgroundColor=[UIColor clearColor];
        [scr addSubview:myLabel1];
    }
    else{

        UILabel *myLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(xDis,yDis+140,112,20)];
        myLabel1.text =[NSString stringWithString:@""];
        [myLabel1 setFont:[UIFont fontWithName:@"Arial" size:11]];
        myLabel1.backgroundColor=[UIColor clearColor];
        [scr addSubview:myLabel1];
    }

    [nxt release]; nxt=nil;
}

}

now i want to implement the lazy loading in scrollview. i want to display images that are visible in scrollview only or specific number of images at a time. so please tell any way to implement this or tell me any technique...