前5个单元格未在自定义TableView Cell - iOS中显示图像

时间:2016-01-15 12:00:27

标签: ios objective-c iphone uitableview uiimageview

我有一个UITableView我已经转换为横向tableview,一个自定义UITableViewCell只有UIImageViewUILabel

问题是,前5个单元格不显示图像,但是当我滚动并返回它们时,会显示图像。不知道问题是什么:(

(下图,请查看水平表视图,忽略垂直表格) enter image description here

这是我在TableViewController类中的代码:

-(void)viewDidLoad
{
    //Rotating the tableview angle -PI/2 Rad = -90 Degrees
    _friendsTableView.transform= CGAffineTransformMakeRotation(-M_PI_2);

    _friendsTableView.translatesAutoresizingMaskIntoConstraints = YES;
    CGRect frame = _friendsTableView.frame;
    frame.origin.y= _segmentControl.frame.size.height;
    frame.origin.x= 0;
    frame.size.width = self.view.frame.size.width;
    frame.size.height = 105.5;
    _friendsTableView.frame= frame;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    FriendsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

    if (nil == cell) {
            cell = [[FriendsTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
        }

        if(cell)
        {
            cell.user = cellsArray_[indexPath.row];
            cell.transform =CGAffineTransformMakeRotation(M_PI_2);

        }
        return cell;
}

现在这是我的自定义单元格类代码,我在其中设置图像和标签(_user是一个属性,因此这个setter方法会自动从cell.user调用):

-(void)setUser
{
    _profileImageView.layer.cornerRadius = _profileImageView.frame.size.width/2;

    _user = user;

    _nameLabel.text = @"Hello";

    [_profileImageView setImage:[UIImage imageNamed:@"placeholder_image"]];
}

2 个答案:

答案 0 :(得分:0)

为什么不使用Collection View控制器。转换Tableview控制器似乎不太好。

在您的代码中,您没有调用setUser方法。

对于自定义表格视图单元格,您可以在

中添加以下代码
 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:strID];
            if (cell == nil)
            {
              NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCustomCell" owner:self options:nil];
                cell = [nib objectAtIndex:0];
            }
}

答案 1 :(得分:0)

根据我的经验,这与Cell的可重用性严格相关,我有一个类似的问题,我的解决方案是在向IBOulet分配东西之前,确保将其清空,之后,分配它并且它应该工作