使用 xib 自定义 UITableViewCell
Custom UITableViewCell using xib
我有一个链接到 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.'
不知道说的是否清楚,有什么问题欢迎追问。
请检查标识符是否与您在 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];
}
这将适用于 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;
并且需要注意的重要事项是在您的自定义单元 class 中,您必须将插座连接到 "Table View Cell" 而不是 "File's Owner" 当您使用自定义单元时
检查 xib 中的单元格标识符和 class 名称。
我有一个链接到 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.'
不知道说的是否清楚,有什么问题欢迎追问。
请检查标识符是否与您在 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];
}
这将适用于 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;
并且需要注意的重要事项是在您的自定义单元 class 中,您必须将插座连接到 "Table View Cell" 而不是 "File's Owner" 当您使用自定义单元时
检查 xib 中的单元格标识符和 class 名称。