表上的ios自定义单元格未显示图像

表上的ios自定义单元格未显示图像,ios,uitableview,Ios,Uitableview,我从表格中加载了一个自定义单元格,其中有一个图像和一个标签,标签显示ok,但图像不显示 CustomCell.m @implementation CustomCell @synthesize vintageImage, tingo; -(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier { self = [super initWithStyle:style re

我从表格中加载了一个自定义单元格,其中有一个图像和一个标签,标签显示ok,但图像不显示

CustomCell.m

@implementation CustomCell
@synthesize vintageImage, tingo;

-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];       
    if (self) {
        [self initLabels];
        [self addSubview:[self vintageScreen]];
    }
    return self;
}

-(UIImageView *)vintageScreen {
    if(vintageScreen == nil) {
       CGRect vintageScreenRect = CGRectMake(25, 0.0f, 100, 100);
       [self setVintageScreen:[[[UIImageView alloc] initWithFrame:vintageScreenRect] autorelease]];
       [vintageScreen setImage:[UIImage imageNamed:self.tingo]];
       vintageScreen.opaque = YES;
    }

    return vintageScreen;
}

-(void)setTingo:(NSString *)newTingo {
    [tingo release];
    tingo = [newTingo retain];

    [[self vintageScreen] setImage:[UIImage imageNamed:tingo]];
}
使用table.m

标签显示ok,但图像不显示,我尝试发送uiImage和NSString


少了什么?谢谢

self.tingo
initWithStyle
方法中可能为零。在initWithStyle调用之后,您正在调用self.tingo属性

这导致
[UIImage imageNamed:self.tingo]
也为零,并且该图像根本不存在


例如,您可以通过tingo属性的自定义设置器,或将vintageScreen设置为属性并“从外部”设置图像来修复它。

您的变量
tingo
在第一次实例化单元格时为空。Doing
cell.tingo=[NSString stringWithFormat:@“picsButtonImg.png”]将其设置为一个值,但是您的单元格永远不知道如何重置图像

vintageScreen
移动到单元格类上的变量中,然后覆盖
tingo
设置器以重新加载图像,如果您想保留
cellForRowAtIndexPath:中的代码

CustomCell.h

@interface CustomCell : UITableViewCell {
    UIImageView *vintageImage;
    NSString *tingo;
}

@property (nonatomic, retain) UIImageView *vintageImage;
@property (nonatomic, retain) NSString *tingo;

@end
CustomCell.m

@implementation CustomCell
@synthesize vintageImage, tingo;

-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];       
    if (self) {
        [self initLabels];
        [self addSubview:[self vintageScreen]];
    }
    return self;
}

-(UIImageView *)vintageScreen {
    if(vintageScreen == nil) {
       CGRect vintageScreenRect = CGRectMake(25, 0.0f, 100, 100);
       [self setVintageScreen:[[[UIImageView alloc] initWithFrame:vintageScreenRect] autorelease]];
       [vintageScreen setImage:[UIImage imageNamed:self.tingo]];
       vintageScreen.opaque = YES;
    }

    return vintageScreen;
}

-(void)setTingo:(NSString *)newTingo {
    [tingo release];
    tingo = [newTingo retain];

    [[self vintageScreen] setImage:[UIImage imageNamed:tingo]];
}

正如阿图尔在回答中指出的那样,NSLog是什么(@“tingo::%@”,self.tingo);给你什么?没错,我们在回答时也得出了类似的结论。
@implementation CustomCell
@synthesize vintageImage, tingo;

-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];       
    if (self) {
        [self initLabels];
        [self addSubview:[self vintageScreen]];
    }
    return self;
}

-(UIImageView *)vintageScreen {
    if(vintageScreen == nil) {
       CGRect vintageScreenRect = CGRectMake(25, 0.0f, 100, 100);
       [self setVintageScreen:[[[UIImageView alloc] initWithFrame:vintageScreenRect] autorelease]];
       [vintageScreen setImage:[UIImage imageNamed:self.tingo]];
       vintageScreen.opaque = YES;
    }

    return vintageScreen;
}

-(void)setTingo:(NSString *)newTingo {
    [tingo release];
    tingo = [newTingo retain];

    [[self vintageScreen] setImage:[UIImage imageNamed:tingo]];
}