我正在使用我在(This site)学到的自定义单元格。它在我的旧应用程序中工作,但在这个应用程序中,我不知道为什么它没有工作,当我运行上面的代码时,他坚持使用绿色错误(NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
)。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CellIdentifier = @"CustomCell";
PCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (PCustomCell *) currentObject;
break;
}
}
}
P2Dict = [P2Rows objectAtIndex: indexPath.row];
cell.Contracts.text = [P2Dict objectForKey:@"Contracts"];
return cell;
}
答案 0 :(得分:1)
自定义单元格xib .file采取tablecell。并在custom.m文件中实现。在视图控制器中通过viewcontroller xib设置整个tableview或以编程方式设置。如果你选择。并设置委托和datasourece methods.in数据源方法写入自定义cell.code写在下面
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Custom";
CustomTableCell *cell = (CustomTableCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
UINib *nib = [UINib nibWithNibName:@"CustomTableCell" bundle:nil];
NSArray *arr = [nib instantiateWithOwner:nil options:nil];
cell = [arr objectAtIndex:0];
}
cell.textLabel.text =[arr objectAtIndex:indexPath.row];
}
答案 1 :(得分:0)
您在CustomCell.xib上有UITableviewCell(PCustomCell)吗? 您应该在此处显示错误的屏幕截图。这将是有帮助的。
答案 2 :(得分:0)
参考以下过程。如何创建自定义表格单元格是一种。
VocaTableCell就是我的理由。制作你的CustomTableCell。
#import <UIKit/UIKit.h>
@interface VocaTableCell : UITableViewCell
{
UILabel *vocaLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *vocaLabel;
@end
#import "VocaTableCell.h"
@implementation VocaTableCell
@synthesize vocaLabel;
- (void)dealloc {
[vocaLabel release];
[super dealloc];
}
@end
下面的代码参考Befoe,你是否正确制作了customTableCell?下面列表检查plz。
有几种方法可以创建customTablecell。
我的态度非常受欢迎。
文件所有者的CustomTabelCell应为 NSObject 。 (非常重要的默认值可能是UITableCell。你必须是一个改变文件的所有者NSObject(NSObject的意思是id类型!)
CustomTableCell将一个Object Class链接到您的CustomTableCell类。
引用Outlets链接Not File的所有者,必须是您直接链接CustomTableCell。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Custom";
CustomTableCell *cell = (CustomTableCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
UINib *nib = [UINib nibWithNibName:@"CustomTableCell" bundle:nil];
NSArray *arr = [nib instantiateWithOwner:nil options:nil];
cell = [arr objectAtIndex:0];
}
cell.textLabel.text =[arr objectAtIndex:indexPath.row];
}
答案 3 :(得分:0)
您的错误指出:“无法在名为”CustomCell“的软件包中加载NIB”。所以你的问题就在于......你的xib名称是什么?