2015-01-13 130 views
0

我使用addsubview修改了子視圖表單元格以在右側(除了左側的圖像)包含一個附加圖像。直到我在頂部添加了一個搜索欄,我的工作效果非常好。不知何故,正確的圖像停止顯示。我試圖刪除搜索欄,但一直無法獲取圖像顯示。我有一種感覺,我無意中犯了一個錯字,或者弄錯了代碼。Addview圖像不在表格單元格中顯示

這裏是方法。它的工作原理除了右側的圖像不再顯示。如果有人能夠發現我的錯誤或者提示出現了問題,將不勝感激。

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *protoCell = @"Cell"; 
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:protoCell]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:protoCell]; 
    } 
    //  IDModel * item; 
    IDModel * item = nil; 

// if no search 
    //item = [self.tableItems objectAtIndex:indexPath.row]; 
    //following for search 

    if (tableView == self.searchDisplayController.searchResultsTableView) { 
     item = [searchResults objectAtIndex:indexPath.row]; 
    } else { 
     item = [self.tableItems objectAtIndex:indexPath.row]; 
    } 

    // Configure the cell... 
    cell.textLabel.text = item.name; 
    cell.detailTextLabel.text = item.sub; 

    cell.imageView.image = [UIImage imageNamed:item.pic]; 
    //following crops and rounds image 
    //add image to right 
    UIImageView *rightimage; 
    rightimage = [[UIImageView alloc] initWithFrame:CGRectMake(225.0,0.0,80.0,45.0)]; 
    rightimage.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleHeight; 
// rightimage.image = [UIImage imageNamed:@"pic.jpg"]; 

    [cell.contentView addSubview:rightimage]; 
     rightimage.image = [UIImage imageNamed:item.pic]; 

    return cell; 
} 

在此先感謝您的任何建議。

回答

0

這裏的一個問題是,您不應該從視圖控制器添加視圖到UITableViewCell。表視圖單元格被重用,所以每次這個單元格被重用時,您都將添加一個新的視圖,而無需先刪除舊單元格。

相反,創建一個UITableViewCell子類,並在-initWithStyle:reuseIdentifier:方法中添加rightimage(我將重命名rightImageView與Apple命名約定一致)。然後在-layoutSubviews方法中設置rightView的框架,或者在創建rightImageView之後在-initWithStyle:reuseIdentifier中設置自動佈局約束。

使rightImageView成爲公共屬性(放在.h文件中),以便您可以從視圖控制器分配圖像。

+0

你會溝通故事板中的子視圖,並將整個單元格作爲自定義單元格嗎? – user1904273

+0

是的,我更喜歡一個完整的自定義單元格。 –

相關問題