我已经创建了一个非常基本的自定义表。我做了一个tabbar控制器。
FoglalasTableViewCell.h
@interface FoglalasTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *datumLabelFoglalas;
@property (weak, nonatomic) IBOutlet UILabel *adminNevekLabelFoglalas;
@end
FoglalasTableViewCell.m
#import "FoglalasTableViewCell.h"
@implementation FoglalasTableViewCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)awakeFromNib
{
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdent = @"foglalas";
FoglalasTableViewCell *Cellw = [tableView dequeueReusableCellWithIdentifier:CellIdent];
if (!Cellw) {
Cellw = [[FoglalasTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdent];
// Cellw = [[FoglalasTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdent];
}
if (Cellw.backgroundView == nil) {
if ([foglaltArr[indexPath.row] isEqual: @0]) {
[Cellw setBackgroundColor:[UIColor greenColor]];
} else if ([foglaltArr[indexPath.row] isEqual: @1]) {
[Cellw setBackgroundColor:[UIColor redColor]];
}
}
NSLog(@"%d. foglaltArr : %@",indexPath.row, [foglaltArr objectAtIndex:indexPath.row]);
NSLog(@"%d orakArr %@",indexPath.row,orakArr[indexPath.row]);
Cellw.datumLabelFoglalas.text = [foglaltArr objectAtIndex:indexPath.row];
Cellw.adminNevekLabelFoglalas.text = @"blah..";
return Cellw;
}
我插入了数据源。 它改变了细胞的背景颜色。 但标签不能获得数据源。 我不明白为什么得到背景源,标签为什么不得到!?我不知道如何解决它。 请帮帮我。
![背景源可见] [1]
答案 0 :(得分:1)
问题出在这里(我猜你不会使用原型单元)
Cellw = [[FoglalasTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdent];
您没有在此处加载xib只是创建FoglalasTableViewCell
对象,datumLabelFoglalas
和adminNevekLabelFoglalas
为nil
使用
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FoglalasTableViewCell" owner:nil options:nil];
Cellw = [nib objectAtIndex:0];
作为参考,您可以查看this tutorial
编辑:对于protype单元格,更改故事板中单元格的类名称和标识符,并使用以下方法
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdent = @"foglalas";
FoglalasTableViewCell *Cellw = [tableView dequeueReusableCellWithIdentifier:CellIdent];
if (Cellw.backgroundView == nil) {
if ([foglaltArr[indexPath.row] isEqual: @0]) {
[Cellw setBackgroundColor:[UIColor greenColor]];
} else if ([foglaltArr[indexPath.row] isEqual: @1]) {
[Cellw setBackgroundColor:[UIColor redColor]];
}
}
NSLog(@"%d. foglaltArr : %@",indexPath.row, [foglaltArr objectAtIndex:indexPath.row]);
NSLog(@"%d orakArr %@",indexPath.row,orakArr[indexPath.row]);
Cellw.datumLabelFoglalas.text = [foglaltArr objectAtIndex:indexPath.row];
Cellw.adminNevekLabelFoglalas.text = @"blah..";
return Cellw;
}
答案 1 :(得分:1)
我会将属性声明为nonatomic, strong
。我也会synthesize
他们。
同时检查您是否将元素与视图相关联。
最后只需调用笔尖
FoglalasTableViewCell *cell = (FoglalasTableViewCell *)[tableView dequeueReusableCellWithIdentifier: CustomCellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FoglalasTableViewCell" owner:self options:nil];
cell = (FoglalasTableViewCell *)[nib objectAtIndex:0];
}
答案 2 :(得分:0)
在main.storyboard中选择您的表格视图单元格并填写标识符字段“foglalas”