在tableview iOS中有一个数组的多个部分

时间:2014-10-18 08:02:11

标签: ios arrays uitableview

我是iOS开发的新手。我的数组包含50个值,我希望在50个部分中逐个显示这50个值,然后我为此编写代码,如

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 {
return self.dataArray.count;
 }
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}

然后我得到了50个部分但是所有部分包含相同的数组值我想表明每个部分包含一个一个数据。如果有可能,请给我任何解决方案

我的TablwviewCell:Rowatindexpath方法

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellidentifier=@"Cell";
CustumCell *cell=[tableView dequeueReusableCellWithIdentifier:cellidentifier];
if (cell == nil)
{
    NSArray *nib=[[NSBundle mainBundle]loadNibNamed:@"CustumCell" owner:self options:nil];
    cell=[nib objectAtIndex:0];
}

NSDictionary *dict = [self.imagesa objectAtIndex:indexPath.item];
NSString *img2=[dict valueForKey:@"post_image"];

[cell.photoimage sd_setImageWithURL:[NSURL URLWithString:[img2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] placeholderImage:[UIImage imageNamed:@"Hisoka.jpg"] options:SDWebImageProgressiveDownload completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"downloaded");

    });
}];
NSString *name=[dict valueForKey:@"post_title"];
cell.namelabel.text=name;
NSString *des=[dict valueForKey:@"post_content"];
cell.deslabel.text=des;


NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
 NSString *date=[dict valueForKey:@"post_date"];
NSDate * dateNotFormatted = [dateFormatter dateFromString:date];
[dateFormatter setDateFormat:@"d-MMM-YYYY"];
NSString * dateFormatted = [dateFormatter stringFromDate:dateNotFormatted];
NSLog(@"Date %@",dateFormatted);
cell.datelabel.text=dateFormatted;
return cell;
}

3 个答案:

答案 0 :(得分:2)

如果从逻辑上考虑这一点,indexPath.row将始终为0,因为每个section都有一行。因此,您在阵列上使用的行号将获取相同的项时间。

每次增加的唯一值是indexPath.section。如果在迭代数组时使用此值,则会导致相应数组中的值不同。

答案 1 :(得分:1)

cellForRowAtIndexPath方法(以及其他数据源/委托方法)中,使用indexPath.section作为数据数组的索引,而不是indexPath.row

或者在您的情况下,替换

NSDictionary *dict = [self.imagesa objectAtIndex:indexPath.item];

NSDictionary *dict = [self.imagesa objectAtIndex:indexPath.section];

答案 2 :(得分:0)

indexpath.section中使用indexpath.row代替cellForRowAtIndexPath