UITableView中的大量内存使用

时间:2014-03-04 12:37:13

标签: ios objective-c memory-management uitableview

我有一个UITableViewController,我自定义了UITableViewCell。每个UITableViewCell包含两个UIImageViews和两个UILabel。虽然当我进入UITableView时,内存使用量增加到100 MB,我不知道原因。以下是处理单元格自定义的cellForRowAtIndexPath方法的代码。任何人都可以帮我解决这个问题吗?

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *simpleTableIdentifier = @"Cell";

    UITableViewCell *cell = 
      [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                      reuseIdentifier:simpleTableIdentifier];
    }   

    UILabel *mnhmeioLabel = (UILabel *)[cell viewWithTag:102]; 
    mnhmeioLabel.frame = CGRectMake(mnhmeioLabel.frame.origin.x,  
                                    mnhmeioLabel.frame.origin.y, 
                                    191, 
                                    21);

    Group *tmpGroup = [mnhmeiaTotal objectAtIndex:indexPath.row];
    NSLog(@"%@ ",tmpGroup.title);    
    NSLog(@"%f %f", mnhmeioLabel.bounds.size.width, 
                    mnhmeioLabel.bounds.size.height);

    mnhmeioLabel.text = tmpGroup.title;
    mnhmeioLabel.font = [UIFont fontWithName:@"Open Sans" size:10];    
    mnhmeioLabel.numberOfLines=0;
    mnhmeioLabel.lineBreakMode=NSLineBreakByWordWrapping;    
    [mnhmeioLabel sizeToFit];   

    if( tmpGroup.imagesOfArticle.count > 0 ){
        UIImageView *mnhmeioImageView = (UIImageView *)[cell viewWithTag:103];
        mnhmeioImageView.image = [tmpGroup.imagesOfArticle objectAtIndex:0];
    } else {
        UIImageView *mnhmeioImageView = (UIImageView *)[cell viewWithTag:103];
        mnhmeioImageView.image = [UIImage imageNamed:@""];
    }    

    UIImageView *markerImageView=(UIImageView *)[cell viewWithTag:100];
    markerImageView.image=[self selectMarker:tmpGroup];

    UILabel *mnhmeioDescription = (UILabel *)[cell viewWithTag:101];
    mnhmeioDescription.text=tmpGroup.constructedContent;

    mnhmeioDescription.font = [UIFont fontWithName:@"Open Sans" size:6];    
}

2 个答案:

答案 0 :(得分:0)

可能图像很大。

或者,也许您没有正确地重复使用单元格,如果您使用的是iOS7和Storyboard,请按照本教程(原型单元格和子类用于单元格部分): http://www.raywenderlich.com/50308/storyboards-tutorial-in-ios-7-part-1

答案 1 :(得分:0)

谢谢大家的帮助。我不得不尽可能地减小每张图像的大小。这解决了我的问题。