表上的ios自定义单元格未显示图像
我从表格中加载了一个自定义单元格,其中有一个图像和一个标签,标签显示ok,但图像不显示 CustomCell.m表上的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
@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
在第一次实例化单元格时为空。Doingcell.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]];
}