2015-05-13 46 views
1

我需要構建一個UITableView來顯示帖子列表,每個帖子將包含3個部分。如何使用UITableView顯示2個UILabels和一個圖像網格,並自動更新單元格高度

  1. 標題(的UILabel與1行文本的)
  2. 內容(的UILabel與文本的多線)
  3. 圖像的網格(圖像的數量將從各行而異)

我已遵循this post

我能夠添加標題和內容,並與自動佈局它的作品,因爲我需要它。但是,我無法添加圖像網格。

我已經在上面的文章中創建了一個自定義單元格視圖類,就像AutoSizeCell.h/AutoSizeCell.m。此外,我創建了一個模態類,它具有三個屬性(標題,內容和我需要在網格中顯示的圖像名稱的NSMutableArray)。但是,看起來我無法將圖像名稱傳遞給AutoSizeCell.m,因此我無法顯示圖像網格。

@implementation AutoSizeCellContents 

-(id)init 
{ 
    self = [super init]; 
    if (self) { 
     self.images = [[NSMutableArray alloc] init]; 
    } 
    return self; 
} 
@end 

控制器:

-(void)configureCell:(AutoSizeCell *)cell atIndexPath:(NSIndexPath *)indexPath 
{ 
    // Configure the cell for this indexPath 
    cell.category.text = [self getCategoryAtIndexPath:indexPath]; 
    cell.pastTense.text = [self getPastTenseAtIndexPath:indexPath]; 

    for (NSString *imageName in [self getImagesAtIndexPath:indexPath]) { 
     NSLog(@"image name %@",imageName); 
     [cell.images addObject:@"hellp"]; 
    } 

} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Create a reusable cell 
    AutoSizeCell *cell = [tableView dequeueReusableCellWithIdentifier:@"plerp"]; 
    if(!cell) { 
     cell = [[AutoSizeCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"plerp"]; 
     [self configureCell:cell atIndexPath:indexPath]; 
    } 

    return cell; 
} 
+2

你應該顯示你的代碼(相關部分)。沒有它就像在霧中戳。 –

+0

好吧,我想知道如果有人能指出方向,他們將如何解決這個問題。 – ankermarco

+0

您沒有閱讀/理解我的第一條評論。沒有人在SO是透視。請提供您的代碼。否則你不會在這裏得到幫助。 –

回答

0

我相信你需要重寫-(id)initWithCoder:(NSCoder*)aDecoder而不是init

或者,不要做這些事情。徹底擺脫init,並做到這一點。

cell.images = [self getImagesAtIndexPath:indexPath]

更少的代碼,更少依靠細胞狀態。而且我非常確定,除非您覆蓋prepareForReuse,否則添加圖像會導致單元格被重用時出現問題。只需設置整個陣列就容易了。

相關問題