我有一个tableview,我已经加载了自定义单元格。
但是,单元组件不会显示。 (标签返回nil - 见下图)
我创建了很多tableview,并且过去已经嵌入了自定义单元格。但是,我遇到了一个无法找到解决方案的问题。
代码如下:
索引路径行的单元格
static NSString *CellIdentifier = @"cell";
MyCell *cell = (MyCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[MyCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
cell.myLabel.text = @"fhjfhjdhfjdfhd ";
return cell;
自定义单元格.h文件
#import <UIKit/UIKit.h>
@interface MyCell : UITableViewCell{
}
@property (weak, nonatomic) IBOutlet UILabel * myLabel;
@end
自定义单元格.m文件
#import "MyCell.h"
@implementation MyCell
@synthesize myLabel;
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
故事板
更新
有一个项目https://github.com/honcheng/PaperFold-for-iOS
在侧边栏上有滑动时出现的桌面视图。
表格视图,它不会显示任何自定义标签组件。
不知道这些信息是否有助于发现问题。
答案 0 :(得分:2)
如果您使用xib创建了自定义单元格,则需要在创建单元格时加载该笔尖为 -
static NSString *cellIdentifier = @"cellIdentifier";
CustomCell *cell = nil;
cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell == nil)
{
cell = (CustomCell *)[[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] lastObject];
}
[cell.label setText:@"label text"];
答案 1 :(得分:1)
请使用以下代码
if (cell == nil) {
NSArray *nib=[[NSBundle mainBundle] loadNibNamed:@"YourCustomCellName" owner:self options:nil];
cell=[nib objectAtIndex:0]; //index of your custom cell
}
注意:在将字符串分配给该标签之前,还请检查您的自定义单元格是否已分配内存。并且您的自定义单元格已连接到“自定义类”(右侧检查器中有第3列)
请参阅随附的屏幕截图。
答案 2 :(得分:0)
尝试这个, 然后为您的标签设置标签
UILabel *lblName=[[UILabel alloc]initWithFrame:CGRectZero];
lblName=(UILabel *)[cell.contentView viewWithTag:5];
将您的值分配给标签
答案 3 :(得分:0)
如果您使用故事板来自定义您的单元格。
您不需要在tableView:cellForRowAtIndexPath:
中分配单元格像这样使用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
return cell;
}