将 UIImageView 添加到自定义 UITableViewCell
Posted
技术标签:
【中文标题】将 UIImageView 添加到自定义 UITableViewCell【英文标题】:Adding UIImageView to custom UITableViewCell 【发布时间】:2012-10-26 00:28:41 【问题描述】:我似乎无法将此图像视图添加到我的自定义 uitableviewcell 类中,我无法弄清楚。这是我的代码:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
// Initialization code
[self layoutCell];
return self;
- (void)layoutCell
self.videoImageView = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 310, 120)];
[self.videoImageView setImage:[UIImage imageNamed:@"myImage.jpg"]];
[self.contentView addSubview:self.imageView];
在调试器中,我注意到一旦我将图像视图添加为内容视图的子视图,如果有帮助,框架就会重新分配给 (0,0,0,0)。我真的不知道发生了什么。如果有人有任何建议,那就太好了。我也尝试将图像视图直接添加到单元格的视图本身,但无济于事。 (而且我很确定那是错误的)。
谢谢!
【问题讨论】:
尝试在tablecell类中实现layoutSubviews方法 【参考方案1】:您不应该在init
单元格方法中设置您的图像。您需要将其分开。
【讨论】:
【参考方案2】:实现layoutSubviews
方法并检查是否有任何不同。它应该可以解决这个问题。
- (void)layoutSubviews
videoImageView.frame = CGRectMake(5, 5, 310, 120);
更新:
尝试将layoutCell
方法从init
方法更改。而是在tableview 的cellForRowAtIndexPath
方法中将其称为[cell layoutCell]
。这将确保即使在重新加载时调用 dequeureuse,它也会正确设置 UIImage 和框架。您可以在您的 init
方法中添加 self.videoImageView = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 310, 120)] ;
。
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
// Initialization code
self.videoImageView = [[[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 310, 120)] autorelease]; //no need of autorelease if ARC is used
return self;
- (void)layoutCell
self.videoImageView.frame = CGRectMake(5, 5, 310, 120);
[self.videoImageView setImage:[UIImage imageNamed:@"myImage.jpg"]];
[self.contentView addSubview:self.videoImageView];
在cellForRowAtIndexPath
,
//create cell
[cell layoutCell];
return cell;
【讨论】:
【参考方案3】:您分配 self.videoImageView,然后将 self.imageView 添加到 contentView(似乎是输入错误)。您也可以按照其他人的建议将您的 UI 初始化方法移动到 initWithStyle 以外的其他位置。这会有所帮助。
【讨论】:
以上是关于将 UIImageView 添加到自定义 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章