我遇到UITableViewCell
的问题。
我的故事板中有一个视图控制器,它连接到名为MainViewController
的视图控制器。它包含一个带有3个标签的UITableViewCell
。 UITableViewCell
已与班级MTTableViewCell
相关联。
// MTTableViewCell.h
#import <UIKit/UIKit.h>
@interface MTTableViewCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UILabel *mainLabel;
@property (strong, nonatomic) IBOutlet UILabel *statusLabel;
@end
// MTTableViewCell.m
#import "MTTableViewCell.h"
@implementation MTTableViewCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
// MainViewController.m
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MTTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[MTTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
NSString *namecell = @"namecell";
NSString *statuscell = @"statuscell";
[cell.mainLabel setText:namecell];
[cell.statusLabel setText:statuscell];
return cell;
}
问题是当我运行MainViewController
时没有显示任何内容。我错过了什么?我没有得到任何错误,只是一个空白的记录,包含1个空白记录。
答案 0 :(得分:2)
查看您的界面构建器 - 您没有“连接”自定义单元格,您应该将其设置为“文件所有者”,因为您实现了视图,而不是设置委托。也许这个提示有帮助吗?
答案 1 :(得分:2)
您没有从主Bundle加载单元格: 使用以下代码,这将适合您:
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *simpleTableIdentifier = @"FleetAccountCell";
FleetAccountCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"FleetAccountCell" owner:nil options:nil] objectAtIndex: 0];;
}
return cell;
}
答案 2 :(得分:1)
试试看这里......你的问题的答案可能是
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object{
CustomCell *cell = (CustomCell * )[self.tableView dequeueReusableCellWithIdentifier:@"YOUR CELL NAME" forIndexPath:indexPath];
// your content cell...
return cell;
}
在此处阅读PFQueryTableViewController not showing custom cells
问候:)
答案 3 :(得分:1)
这项工作对我来说..
select
答案 4 :(得分:1)
以这种方式声明TableViewcell
:
TableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
下面一个不适合我:
TableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
答案 5 :(得分:0)
重写cellForRowAtIndexPath:
方法,如下所示
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MTTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"CUSTOME_CELL_Nib_NAME" owner:nil options:nil] objectAtIndex: 0];;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
NSString *namecell = @"namecell";
NSString *statuscell = @"statuscell";
[cell.mainLabel setText:namecell];
[cell.statusLabel setText:statuscell];
return cell;
}
答案 6 :(得分:0)
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 4;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell";
TableViewCell *cell = (TableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TableViewCell" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}
return cell;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
答案 7 :(得分:0)
我遇到了同样的问题,我在tableview委托和数据源中错过了一个连接:
self.yourtableviewname.delegate=self;
self.youtableviewname.datasource=self;
之后它运作良好。
答案 8 :(得分:-1)
你没有实例化mainLabel和statusLabel,所以它们现在是零。你必须在initWithStyle方法中实例化它们。