1

我有一些图片。我的 tableview 将加载它们并根据图片的高度更改行的高度。我的图片大小不同。

- (void)viewDidLoad
{

    NSString *imageName=[kDataArray objectAtIndex:(arc4random()%[kDataArray count])];
    UIImageView *importIMG=[[UIImageView alloc]initWithImage:[UIImage imageNamed:imageName]];


    //init tablexiewcell
    arrayList=[[NSMutableArray alloc] initWithCapacity:kRowsInitSize];
    for (NSUInteger i=0; i<kRowsInitSize; i++) {
        [arrayList addObject:[kDataArray objectAtIndex:rand()%2]];
    }

    [TableView setPullToRefreshHandler:^{

        NSArray * newRows=[NSArray arrayWithObject:[kDataArray objectAtIndex:rand()%2]];
        [self performSelector:@selector(dataDidRefresh:) withObject:newRows afterDelay:3.0];

    }];

[super viewDidLoad];
}

#pragma mark- UITableViewDataSource


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyCell* cell=[self tableView:tableView cellForRowAtIndexPath:indexPath];
    NSLog(@"%f",cell.Pimage.frame.size.height);
    return cell.Pimage.frame.size.height;

}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return [arrayList count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    NSString *imageName=[kDataArray objectAtIndex:(arc4random()%[kDataArray count])];
    UIImageView *importIMG=[[UIImageView alloc]initWithImage:[UIImage imageNamed:imageName]];

    MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell==nil) {
        cell = [[[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.Pimage=importIMG;

    }
    return cell;
}

#pragma mark - Private methods

-(void)dataDidRefresh:(NSArray *)data
{
    [TableView refreshFinished];

    NSIndexSet * indexSet=[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [data count]) ];
    NSLog(@"%d",[data count]);
    [arrayList insertObjects:data atIndexes:indexSet];

    NSMutableArray * indexPaths=[[NSMutableArray alloc] initWithCapacity:[data count]];
    for (NSUInteger i=0; i<[data count]; i++)
    {
        [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
    }
    [TableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
    [indexPaths release];
}

我写了这些代码,但我没有达到我的目标。我该如何编码?请给我帮助!

4

0 回答 0