我创建了UITableViewCell
的子类,以获得更大的TableViewCell以及更多选项。
但我的问题是我无法设置标签的文字:
BlogItem *bi = [[channel items] objectAtIndex:[indexPath row]];
NSLog(@"%@", [bi title]);
[[cell mainLabel] setText:[bi title]];
NSLog(@"%@", [[cell mainLabel] text]);
第一条日志消息返回我期望的文本,但第二条消息总是记录(null)。
我真的不知道应该是什么错。我像往常一样创建了标签:
@property (weak, nonatomic) IBOutlet UILabel *mainLabel;
当然,我连接标签并合成它们(检查两次)。我也实现了方法
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
为每个单元格获得适当的高度(工作正常)。
顺便说一句,复选标记按预期显示。这只是标签。答案 0 :(得分:1)
确保在UITableViewCell
方法中实例化自定义cellForRowAtIndexPath
子类。还要确保在IBOutlets
子类中声明了UITableView
,而不是在TableView
的视图控制器中声明了UITableViewCell
。还要确保接口构建器中的单元的父类设置为相同的子类。
像这样(自定义#import <UIKit/UIKit.h>
@interface MyCustomCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *mainLabel;
@end
子类接口文件):
@synthesize
然后在实现文件中@synthesize mainLabel;
:
cellForRowAtIndexPath
然后在static NSString *CellIdentifier = @"MyCellIdentifier";
MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
BlogItem *bi = [[channel items] objectAtIndex:[indexPath row]];
// Configure the cell...
cell.mainLabel.text = [bi title];
// ... Other stuff
return cell;
中,例如:
{{1}}