gpt4 book ai didi

ios - 重用自定义 TableViewCell

转载 作者:行者123 更新时间:2023-11-28 17:48:39 25 4
gpt4 key购买 nike

我有一个 viewController,它包含一个以编程方式创建的 tableView

@property (strong, nonatomic) UITableView *numbersTableView;
//...
self.numbersTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, -100, self.view.frame.size.width-20, 50)];
self.numbersTableView.delegate = self;
self.numbersTableView.dataSource = self;
self.numbersTableView.tag = 1;
self.numbersTableView.layer.cornerRadius = 5;
[self.numbersTableView setBounces:false];
[self.numbersTableView setHidden:true];
[self.numbersTableView registerClass:[AZGCountryCell class] forCellReuseIdentifier:@"NumbersTableViewCell"];
[self.view addSubview:self.numbersTableView];

对于原型(prototype)单元格,我想使用我在另一个 viewController 的其他地方创建的原型(prototype),我在 Storyboard 中设计了它。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView.tag == 1) { //tableView == self.numbersTableView
NSString *cellID = @"NumbersTableViewCell";
AZGCountryCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil) {
cell = [[AZGCountryCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
}
cell.countryName.text = self.numbersArray[indexPath.row].number;
cell.flagImageView.image = [UIImage imageNamed:self.numbersArray[indexPath.row].country];
return cell;
}
}

我的自定义单元格包含一个 UIImageView 和一个 UILabel 但是当我运行代码时,单元格是空的,我可以看到 UIImageViewUILabel 为零!

#import <UIKit/UIKit.h>

@interface AZGCountryCell : UITableViewCell

@property (strong, nonatomic) IBOutlet UIImageView *flagImageView;
@property (strong, nonatomic) IBOutlet UILabel *countryName;
@property (strong, nonatomic) IBOutlet UILabel *countryCode;

@end

#import "AZGCountryCell.h"

@implementation AZGCountryCell
@synthesize flagImageView;
@synthesize countryName;

- (void)awakeFromNib {
[super awakeFromNib];
self.flagImageView.layer.cornerRadius = self.flagImageView.frame.size.width/2;
self.flagImageView.layer.masksToBounds = YES;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
}

@end

那么我应该怎么做才能在我的 numbersTableView 中正确填充单元格?

最佳答案

不幸的是,您不能在单独的类的 Storyboard 中重用在表格 View 中定义的表格单元格。

为了能够在不同的 View 之间共享您的单元格,您必须将 View 提取到一个单独的 nib 并注册该 nib 以用于两个表。

或者,您可以在表格 View 单元格子类中的代码中实现单元格的 UI。

关于ios - 重用自定义 TableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520982/

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