【问题标题】:Custom UITableViewCell using xib使用 xib 自定义 UITableViewCell
【发布时间】:2015-04-01 00:20:40
【问题描述】:

我有一个链接到 UITableVIewCell xib 的自定义 UITableViewCell。当我运行应用程序时,出现错误。

我做了很多搜索,最终找到了this。当我尝试从单元格视图拖动到文件所有者时,该视图似乎不可点击或不可拖动。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CategorieUITableVIewCell"];
    if (cell == nil) {
        UIViewController *tempVC = [[UIViewController alloc] initWithNibName:@"CategorieUITableVIewCell" bundle:nil];
        cell = (CategorieUITableVIewCell *)tempVC.view;
    }

    return cell;
}




Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "CategorieUITableVIewCell" nib but the view outlet was not set.'

不确定这是否足够清楚,但如果您有任何问题,请提出。

【问题讨论】:

  • 检查你是否指定了单元格类的名称CategorieUITableVIewCell
  • 我不知道你在哪里搜索过,但这不再是推荐的方法。您应该注册 nib(在 viewDidLoad 中是一个好地方),并摆脱 if cell == nil 子句。
  • goto CategorieUITableVIewCell.xib--> "显示身份检查器"-->自定义类然后检查你的类名

标签: ios objective-c uitableview xib


【解决方案1】:

这将适用于 SURE。您可以在 cellForRowAtIndexPath 方法中尝试此操作。

 static NSString *categoryTableIdentifier = @"CategoryUITableViewCell";

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

cell.CustomedLabel.text=[YourArray objectAtIndex:indexPath.row];
return cell;

需要注意的重要一点是在您的自定义单元格类中,当您使用自定义单元格时,您必须将插座连接到“表格视图单元格”而不是“文件所有者”

【讨论】:

  • 伙计,这快把我逼疯了。自故事板出现以来,我一直在使用它,但我忘记了正确使用 xibs 单元格。我的问题是插座连接。我通常倾向于从 IB 拖到班级,但将其连接到文件所有者而不是单元格。谢谢!!
【解决方案2】:

请检查标识符是否与您在 xib 中指定的标识符匹配。然后只需更换你的

if (cell == nil) {
    UIViewController *tempVC = [[UIViewController alloc] initWithNibName:@"CategorieUITableVIewCell" bundle:nil];
    cell = (CategorieUITableVIewCell *)tempVC.view;
}

代码

if (cell == nil) {
    cell = [[[NSBundle mainBundle] loadNibNamed:@"CategorieUITableVIewCell" owner:nil options:nil] objectAtIndex:0];
}

【讨论】:

    【解决方案3】:

    检查 xib 中的单元格标识符和类名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多