UITableView中不可见的标签文本

时间:2015-02-27 07:08:30

标签: ios objective-c uitableview cell

我已经创建了一个非常基本的自定义表。我做了一个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]

3 个答案:

答案 0 :(得分:1)

问题出在这里(我猜你不会使用原型单元)

Cellw = [[FoglalasTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdent];

您没有在此处加载xib只是创建FoglalasTableViewCell对象,datumLabelFoglalasadminNevekLabelFoglalasnil

使用

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”