我创建了一个名为OptionsTableViewCell的自定义TableViewCell类和一个名为WPOptionsTableViewController的自定义TableViewController类。细胞总是空白的。这是我到目前为止所做的:
AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds] ];
WPOptionsViewController *vc = [[WPOptionsViewController alloc] init]
UITableView *view = vc.tableView;
[view registerClass:[OptionsTableViewCell class] forCellReuseIdentifier:@"OptionsTableViewCell"];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
OptionsTableViewCell.m:
- (instancetype) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if ( self )
{
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.textLabel.textColor = [UIColor yellowColor];
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
[self highlight:selected];
}
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
[super setHighlighted:highlighted animated:animated];
[self highlight:highlighted];
}
- (void)highlight:(BOOL) highlight {
UIColor *tintColor = [UIColor whiteColor];
if ( highlight )
tintColor = [UIColor colorWithWhite:1.0 alpha:0.6];
self.textLabel.textColor = tintColor;
}
WPOptionsTableViewController.m:
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColor redColor];
self.tableView.contentInset = UIEdgeInsetsMake(80, 0.0, 0.0, 0.0);
self.clearsSelectionOnViewWillAppear = NO;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
OptionsTableViewCell *cell = [[OptionsTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"OptionsTableViewCell"];
if ( indexPath.row == 0 )
cell.textLabel.text = @"Home";
if ( indexPath.row == 1 )
cell.textLabel.text = @"Profile";
if ( indexPath.row == 2 )
cell.textLabel.text = @"Settings";
return cell;
}
无需使用dequeueReusableCellWithIdentifier,因为我只有3行
编辑:我没有使用任何XIB文件。问题似乎出现在我的自定义单元格实现中,但我看不出有什么问题。答案 0 :(得分:0)
这是因为,您在OptionTableViewCell的高亮显示方法中将textColor设置为白色。默认情况下,由于未突出显示,突出显示的BOOL值将为NO。给出else条件并用黑色替换色调颜色。你可以看到文字。
UIColor *tintColor = [UIColor blackColor];