从 xib 错误加载表格视图中的单元格

Posted

技术标签:

【中文标题】从 xib 错误加载表格视图中的单元格【英文标题】:Loading cell in table view from xib bug 【发布时间】:2016-09-22 13:20:28 【问题描述】:

我正在从 xib 加载单元格。但随后表格视图控制器打开单元格是白色的。只有在单击单元格后才会显示实验室和其他内容。

 - (void)viewDidLoad 
    [super viewDidLoad];

    self.tableView.delegate = self;
    self.tableView.dataSource = self;

    [self.tableView registerNib:[UINib nibWithNibName:@"FixedCell" bundle:nil] forCellReuseIdentifier:@"FixedCell"];
    

    //cellForRow......
    if(indexPath.section==1)
        if(indexPath.row==0)
        FixedCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FixedCell"];
        return cell;
       
   

谁能找到,这里有什么问题?

【问题讨论】:

只需编辑您的问题并提供更多详细信息,以便我们更好地理解并相应地回答.. 【参考方案1】:

使用此代码可能会有所帮助...

-(void)tableView:(UITableView *) willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

    FixedCell *newCell = (FixedCell *)cell;
    [newCell layoutIfNeeded];



【讨论】:

【参考方案2】:

不要在UITableView中加载UINib,只需在viewDidLoad方法中加载它..

使用这种方法

UINib *nib = [UINib nibWithNibName:@"FixedCell" bundle:nil];
[self.tablView registerNib:nib forCellReuseIdentifier:@"FixedCell"];

【讨论】:

【参考方案3】:

目标 C

试试这个...

cell =(FixedCell *)[tableView dequeueReusableCellWithIdentifier:@"FixedCell" forIndexPath:indexPath];


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    cell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(tableView.bounds), CGRectGetHeight(cell.bounds));
    [cell layoutIfNeeded];
    CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
    return size.height;

斯威夫特:

var cell: FixedCell! = tableView.dequeueReusableCellWithIdentifier("FixedCell", forIndexPath: indexPath) as! HistoryTableViewCell

if (cell == nil) 
    cell = FixedCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "FixedCell")

【讨论】:

我已经为这个单元格准备了:- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath if(indexPath.section == 1 && indexPath.row == 0) 返回 70; 返回 35; 和 xib 一样的高度

以上是关于从 xib 错误加载表格视图中的单元格的主要内容,如果未能解决你的问题,请参考以下文章

来自自定义 Xib 的表格视图中的动态单元格大小 [重复]

如何在同一个xib中放置自定义单元格和表格视图?

如何将单独的 xib 单元格注册到多个表格视图?

添加和布局从 xib 加载的子视图到自定义单元格

从 Xib 加载原型单元

如何在表格视图单元格中添加 xib 文件?