gpt4 book ai didi

ios - 元素在 UItableviewCell 子类之后不显示

转载 作者:行者123 更新时间:2023-11-28 21:50:23 25 4
gpt4 key购买 nike

我使用 Custome uitableview cell 来避免性能下降。

这就是我填充表格单元格的方式:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

NSString *reuseIdentifier = [NSString stringWithFormat:@"cell_%ld",(long)indexPath.row];

SubcategoryTableViewCell * sctvCell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];

if (sctvCell == nil) {
sctvCell= [[SubcategoryTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];

}
sctvCell.contentView.translatesAutoresizingMaskIntoConstraints = NO;

[sctvCell.label setText:appRecord.title];
return sctvCell;

}

在我的“SubcategoryTableViewCell.h” header 中,IBOutlet 指向单元格中的项目:

@property (weak, nonatomic) IBOutlet UILabel *mood_count_lbl;

在我的“SubcategoryTableViewCell.m”类中:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {

[super setSelected:selected animated:animated];

}
-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

if(self){

self.contentView.backgroundColor = [UIColor clearColor];
UIView *whiteRoundedCornerView = [[UIView alloc] initWithFrame:CGRectMake(10,10,300,150)];
whiteRoundedCornerView.backgroundColor = [UIColor whiteColor];
whiteRoundedCornerView.layer.masksToBounds = NO;
whiteRoundedCornerView.layer.cornerRadius = 3.0;
[whiteRoundedCornerView.layer setShadowColor:[UIColor grayColor].CGColor];
whiteRoundedCornerView.layer.shadowOffset = CGSizeMake(-1, 1);
whiteRoundedCornerView.layer.shadowOpacity = 0.2;
[self.contentView addSubview:whiteRoundedCornerView];
[self.contentView sendSubviewToBack:whiteRoundedCornerView];



return self;

}

上面的代码注释出现在单元格中,除了我的边框和阴影

在客户单元中制作。

单元格中的元素也正确连接到客户单元格。

问题是否回到我制作的动态“reuseIdentifier”?

如果我将它改回此代码,则一切正常,无需定制单元格和子类化:

NSString *reuseIdentifier = @"PlaceholderCell2";
UITableViewCell * sctvCell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];

if (sctvCell == nil) {
sctvCell= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];

}

即使我像这样更改我的代码:

self.contentView.backgroundColor = [UIColor clearColor];
UIView *whiteRoundedCornerView = [[UIView alloc] initWithFrame:CGRectMake(10,10,300,150)];
whiteRoundedCornerView.backgroundColor = [UIColor whiteColor];
whiteRoundedCornerView.layer.masksToBounds = NO;
whiteRoundedCornerView.layer.cornerRadius = 3.0;
[whiteRoundedCornerView.layer setShadowColor:[UIColor grayColor].CGColor];
whiteRoundedCornerView.layer.shadowOffset = CGSizeMake(-1, 1);
whiteRoundedCornerView.layer.shadowOpacity = 0.2;
[self.contentView addSubview:whiteRoundedCornerView];
UILabel *_lblTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[self.contentView addSubview:_lblTitle];
[self.contentView sendSubviewToBack:whiteRoundedCornerView];

现在显示新标签。

我正在检查单元名称和类,一切正常。

enter image description here

我的“SubCategoryViewController.m”代码:http://paste2.org/_nCY8zF9w

我的“SubcategoryTableViewCell.m”代码:http://paste2.org/_h9AJnzcV

我的“SubcategoryTableViewCell.h”代码:http://paste2.org/_vUJjEcXV

最佳答案

您正在将文本设置为 sctvCell.label,这个标签是什么?您还有标签值为 1 的 label。您想使用哪个标签?

假设你想使用带有标签的标签和函数initWithStyle:reuseIdentifier,你应该在这个函数中添加标签,然后为这个标签设置文本。 reuseIdentifier是动态的,应该是静态的。您的手机只需要一个标识符。

假设你想使用 IBoutlet 标签,然后你从 xib 或 storyboard 加载单元格,对于 iOS 8,如果你在你的表中设置了一个带有 reuseIdentifier 的单元格,单元格加载自 Storyboard总是有值(value)的,所以它不能为零。您可能希望将自定义代码添加到单元格子类中的 awakeFromNib 方法。

关于ios - 元素在 UItableviewCell 子类之后不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28578681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com