如何在单元格中显示变量
How to display variables in cell
我正在尝试获取 table 视图来显示数组中的数据。
错误显示
Use of Unidentifiable identifier tableItems
这里是tvc的实现文件:
@interface IDTVC ()
@property NSMutableArray *tableItems;
@end
@implementation IDTVC
-(void)loadInitialData {
IDModel *item1 = [[IDModel alloc] init];
item1.name = @"Hamburger";
item1.sub = @"test";
//identify image here
item1.pic =@"pic.png";
[self.tableItems addObject:item1];
IDModel *item2 = [[IDModel alloc] init];
item2.name = @"Cheeseburger";
item2.sub = @"test";
item2.pic =@"pic.png";
[self.tableItems addObject:item2];
IDModel *item3 = [[IDModel alloc] init];
item3.name = @"Hot Dog";
item3.sub = @"test";
item3.pic =@"pic.png";
[self.tableItems addObject:item3];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.tableItems = [[NSMutableArray alloc] init];
[self loadInitialData];
}
static NSString *protoCell = @"Cell";
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:protoCell forIndexPath:indexPath];
// Configure the cell...
//RED ERROR IN FOLLOWING LINE
cell.textLabel.text = [tableItems.name objectAtIndex:indexPath.row];
// cell.textLabel.text = @"head";
cell.detailTextLabel.text = @"sub";
return cell;
}
在 tableItems
数组中获取名称并将其分配给 labelText
的适当语法是什么?
如有任何建议,我们将不胜感激。
应该是_tableItems
或self.tableItems
。您在其他方法中正确使用它,但在 UITableView
委托方法中不正确。另外,如果启用 ARC
,则将 tableItems
属性 strong
设置为:
@property (nonatomic, strong) NSMutableArray *tableItems;
为 UITableViewCell 创建子类 'MyCustomCell' 并在其中添加属性。
在您的 .h 文件中
@interface MyCustomCell : UITableViewCell
@property (strong, nonatomic) UILabel *myTitle;
@property (strong, nonatomic) UILabel *detailTitle;
@end
在您的 .m 文件中
-(id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder]) {
_myTitle = [[UILabel alloc] init];
_detailTitle = [[UILabel alloc] init];
[self.contentView addSubview:_myTitle];
[self.contentView addSubview:_detailTitle];
}
return self;
}
在您的 UITableViewController 中添加导入您的自定义子类
在 UITableViewController 中为您的姓名和子项创建 NSString 属性
#import "MyCustomCell"
@属性(强,非原子)NSString *name;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *requestCell = @"myCell";
MyCustomCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:requestCell forIndexPath:indexPath];
cell.myTitle.frame = CGRectMake(105, 0, self.view.frame.size.width - 155, 50);
cell.detailTitle.frame = CGRectMake(105, 50, self.view.frame.size.width - 110, 15);
cell.myTitle.text = _tableItems.name;
cell.detailTitle.text = _tableItems.sub;
return cell;
}
***未测试
我正在尝试获取 table 视图来显示数组中的数据。
错误显示
Use of Unidentifiable identifier tableItems
这里是tvc的实现文件:
@interface IDTVC ()
@property NSMutableArray *tableItems;
@end
@implementation IDTVC
-(void)loadInitialData {
IDModel *item1 = [[IDModel alloc] init];
item1.name = @"Hamburger";
item1.sub = @"test";
//identify image here
item1.pic =@"pic.png";
[self.tableItems addObject:item1];
IDModel *item2 = [[IDModel alloc] init];
item2.name = @"Cheeseburger";
item2.sub = @"test";
item2.pic =@"pic.png";
[self.tableItems addObject:item2];
IDModel *item3 = [[IDModel alloc] init];
item3.name = @"Hot Dog";
item3.sub = @"test";
item3.pic =@"pic.png";
[self.tableItems addObject:item3];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.tableItems = [[NSMutableArray alloc] init];
[self loadInitialData];
}
static NSString *protoCell = @"Cell";
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:protoCell forIndexPath:indexPath];
// Configure the cell...
//RED ERROR IN FOLLOWING LINE
cell.textLabel.text = [tableItems.name objectAtIndex:indexPath.row];
// cell.textLabel.text = @"head";
cell.detailTextLabel.text = @"sub";
return cell;
}
在 tableItems
数组中获取名称并将其分配给 labelText
的适当语法是什么?
如有任何建议,我们将不胜感激。
应该是_tableItems
或self.tableItems
。您在其他方法中正确使用它,但在 UITableView
委托方法中不正确。另外,如果启用 ARC
,则将 tableItems
属性 strong
设置为:
@property (nonatomic, strong) NSMutableArray *tableItems;
为 UITableViewCell 创建子类 'MyCustomCell' 并在其中添加属性。
在您的 .h 文件中
@interface MyCustomCell : UITableViewCell
@property (strong, nonatomic) UILabel *myTitle;
@property (strong, nonatomic) UILabel *detailTitle;
@end
在您的 .m 文件中
-(id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder]) {
_myTitle = [[UILabel alloc] init];
_detailTitle = [[UILabel alloc] init];
[self.contentView addSubview:_myTitle];
[self.contentView addSubview:_detailTitle];
}
return self;
}
在您的 UITableViewController 中添加导入您的自定义子类
在 UITableViewController 中为您的姓名和子项创建 NSString 属性
#import "MyCustomCell"
@属性(强,非原子)NSString *name;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *requestCell = @"myCell";
MyCustomCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:requestCell forIndexPath:indexPath];
cell.myTitle.frame = CGRectMake(105, 0, self.view.frame.size.width - 155, 50);
cell.detailTitle.frame = CGRectMake(105, 50, self.view.frame.size.width - 110, 15);
cell.myTitle.text = _tableItems.name;
cell.detailTitle.text = _tableItems.sub;
return cell;
}
***未测试