iOS:自定义UITableViewCell不显示数据

时间:2015-12-30 13:18:57

标签: ios objective-c uitableview custom-cell

我在UITableView中创建了UIViewController,我在故事板中构建了一个原型单元格。我为要更改的单元格中的所有元素分配了标记,我在代码中更改它们。

当调用(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath时,我的数据会被处理,我可以看到一个单元格显示我在故事板中设置的红色背景颜色,但图像或文本丢失了。我认为问题在于实施,但我无法弄清楚我做错了什么。

这就是故事板的样子:

这是相关代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"CellIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
    }

    if(tableView == youLikeTableView)
    {
        UIView* youLikeImageFrame = (UIView *)[cell.contentView viewWithTag:100];
        UIImageView* youLikeImageView = (UIImageView *)[cell.contentView viewWithTag:101];
        UILabel *youLikeNameLabel = (UILabel *)[cell.contentView viewWithTag:102];

        for(int i = 0; i < [youLike count]; i++)
        {
            youLikeImageFrame.layer.cornerRadius = youLikeImageFrame.frame.size.width / 2;
            [youLikeImageView setImage:[youLikeImages objectAtIndex:i]];
            youLikeImageView.layer.cornerRadius = youLikeImageView.frame.size.width / 2;

            youLikeNameLabel.text = [youLikeName objectAtIndex:i];
        }
    }

    return cell;
}

这是出现没有文字或图像的单元格

enter image description here

1 个答案:

答案 0 :(得分:0)

您忘了将它们添加为子视图

[cell addSubView:youLikeImageFrame];
[cell addSubView: youLikeImageView]; and 
[cell addSubView: youLikeNameLabel];

之前

return cell;