我在ios xcode项目的故事板中有一个UITableView,
我还在menuitem
中存储了itemarray
个对象数组:
NSMutableArray *itemarray;
这是我的menuitem.h文件
#import <Foundation/Foundation.h>
@interface menuitem : NSObject
@property (nonatomic) NSString *itemtitle;
@property (nonatomic) NSString *itemdesc;
@property (nonatomic) int itemid;
@property (nonatomic) int itemprice;
@property (nonatomic) NSString *itemcat;
@end
这是我的tableviewcell.m文件:
#import "tableviewcell.h"
#import "menuitem.h"
@interface tableviewcell ()
@property (nonatomic, weak) IBOutlet UILabel *titleLabel;
@property (nonatomic, weak) IBOutlet UILabel *descLabel;
@property (nonatomic, weak) IBOutlet UILabel *priceLabel;
@end
@implementation tableviewcell
-(void)configureWithmenuitem:(menuitem *)item{
NSLog(@"hello");
self.titleLabel.text = item.itemtitle;
self.descLabel.text = item.itemdesc;
self.priceLabel.text = [NSString stringWithFormat:@"%.1d", item.itemprice];
}
@end
我想从itemtitle
的每个实例中将itemdesc
,itemprice
和menuitem
分别放到每个tableviewcell
s上的3个标签
答案 0 :(得分:1)
您的tableviewcell是一个视图,因此它应该只知道如何显示自己而不是显示什么。控制器的作用(通过委托tableView:cellForRowAtIndexPath:方法)告诉视图要显示的内容。
因此你应该做类似的事情:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Id"];
//Assuming you've stored your items in an array.
Item *item = [items objectAtIndex:indexPath.row];
cell.titleLabel.text = item.itemTitle;
cell.descLabel.text = item.itemdesc;
cell.priceLabel.text = [NSString stringWithFormat:@"%.1d", item.itemprice];
return cell;
}
^上面的代码假设您有一个原型单元格。如果不这样做,则在出列后,如果单元格为零,则必须分配。