繁体   English   中英

UITableView中的2维数组

[英]2 dimensional array in UITableView

我从JSON获得image和imageTitle,如下所示

//geting imageTitle
NSString*titles =[dealPosted valueForKey:@"deaTitle"];
NSLog(@"titles^^^%@",titles);
[titlearray addObject:titles]; 

//geting Images
NSString *geting2 =[diction2 valueForKey:@"dealimage"];
NSData *getdata2=[[NSData alloc]initWithData:[NSData dataFromBase64String:geting2]];
NSLog(@"good day2 %@",getdata2);
dataimages2=[UIImage imageWithData:getdata2];
[secondarray addObject:dataimages2];

然后像这样将它们传递给UITableViewCell

cell.thumbnailImageView.image = [secondarray objectAtIndex:indexPath.row];
cell.nameLabel.text = [titlearray objectAtIndex:indexPath.row];

但这需要使用两个mutablearray。 我认为这会占用很多空间。因此,请任何人告诉我在这种情况下如何使用Single Array(例如二维数组)。

请帮我 。

提前致谢。

    NSMutableDictionary *dataDic  =[[NSMutableDictionary alloc] init];

    NSString*titles =[dealPosted valueForKey:@"deaTitle"];
    [dataDic setValue:titles forKey:@"deaTitle"];


    NSString *geting2 =[diction2 valueForKey:@"dealimage"];
    NSData *getdata2=[[NSData alloc]initWithData:[NSData dataFromBase64String:geting2]];
    NSLog(@"good day2 %@",getdata2);
    dataimages2=[UIImage imageWithData:getdata2];
    [dataDic setValue:dataimages2 forKey:@"dealimage"];

    [titlearray addObject:titles];

然后像这样将它们传递到UITableViewCell中,就可以解决您的问题

  cell.thumbnailImageView.image = [[titlearray objectAtIndex:indexPath.row] valueForKey:@"dealimage"];
    cell.nameLabel.text = [[titlearray objectAtIndex:indexPath.row] valueForKey:@"deaTitle"];

您可以在一个数组中一个接一个地设置这两个值(对于每个图像)。 然后可以将它们作为indexPath.row * 2访问。

//geting imageTitle
NSString*titles =[dealPosted valueForKey:@"deaTitle"];
            NSLog(@"titles^^^%@",titles);
            [myArray addObject:titles]; 
 //geting Images
NSString *geting2 =[diction2 valueForKey:@"dealimage"];
            NSData *getdata2=[[NSData alloc]initWithData:[NSData dataFromBase64String:geting2]];
            NSLog(@"good day2 %@",getdata2);
            dataimages2=[UIImage imageWithData:getdata2];
            [myArray addObject:dataimages2];

现在在表委托方法numberOfRowsInSection: return myArray.count/2

并在cellForRowAtIndexPath中:

cell.thumbnailImageView.image = [myArray objectAtIndex:(indexPath.row*2)+1];
        cell.nameLabel.text = [myArray objectAtIndex:indexPath.row*2];

我之所以回答您,是因为您使用一个数组来询问它,但是实际上,使用单个2D数组,包含所有信息的单个1D数组或2个单独的1D数组不会对您的内存产生任何影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM