所以我按照本教程使用界面构建器创建自定义UITableCellView
。我创建了一个xib文件,其中UITableViewCell
具有自定义UITableViewCell
作为其类。在上课时我有 -
@interface SearchResultCell : UITableViewCell
@property(strong,nonatomic)IBOutlet UIImageView *restaurantImage;
@property(strong,nonatomic)IBOutlet UILabel *restaurantName;
@end
在自定义UITableViewCell
的界面构建器文件中,我在连接菜单中将restaurantImage
拖到自定义UIImageView
中的UITableViewCell
,并将标签拖到{ {1}}。
然后在我的桌子绘制的地方我这样做 -
restaurantName
执行 -(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
SearchResultCell *cell = [self.resultTable dequeueReusableCellWithIdentifier:CellTableIdentifier];
NSDictionary *rowData = self.resultsTuples[indexPath.row];
NSString* restaurantTitle = rowData[@"$element"][@"Title"];
cell.restaurantName.text = restaurantTitle;
return cell;
}
- (void)viewDidLoad
{
[super viewDidLoad];
UINib *nib = [UINib nibWithNibName:@"SearchResultCell"
bundle:nil];
[self.resultTable registerNib:nib forCellReuseIdentifier:CellTableIdentifier];
// Do any additional setup after loading the view.
}
不会产生任何结果。但是,执行cell.restaurantName.text = restaurantTitle
确实有效。
为什么我的标签没有更新?
答案 0 :(得分:0)
你这样做吗?
@synthesize restaurantImage;
@synthesize restaurantName;
之后,在您的代码中:
restaurantName = [[UILabel alloc]initWithFrame:yourRestaurantNameFrame];
//other attribute
[self.contentView addSubview:restaurantName];
答案 1 :(得分:0)
单元格可能不是显示自定义标签的正确高度。由于你在xib中使单元格高出245点,你应该实现tableView:heightForRowAtIndexPath:,并返回245.