为什么我无法更改表格页脚的文字颜色?

时间:2015-08-20 15:32:20

标签: ios uitableview cocoa-touch

当用户在UITableView的文本域单元格中输入不正确的内容时,我想将页脚更改为带有彩色文本的警告,描述错误。除了着色之外,我还能完美地完成它。 我的代码是什么,我做错了,这样文字没有上色?

- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    switch (section)
    {
        // Inspection confirms this case is entered when needed.
        case SECTION_VALIDATABLE_FORM:
        {
            UITableViewHeaderFooterView *warningFooter = [[UITableViewHeaderFooterView alloc] initWithReuseIdentifier:K_FOOTER_WARNING];
            UIColor *color = [MyColors uiColorForKey:K_COLOR_TEXT_ERROR]; // inspection confirms this is the UIColor equivalent of #BB2222
            [warningFooter.textLabel setTextColor:color];
            return warningFooter;
        }
        // other sections...
    }
    return nil;
}

1 个答案:

答案 0 :(得分:0)

UITableViewHeaderFooterView使用自定义UILabel子类,显然,颜色无法更改。

您应该将UITableViewHeaderFooterView子类化并手动添加自己的标签。

@interface XXTableViewHeaderFooterView : UITableViewHeaderFooterView
@property (nonatomic, strong) UILabel *myLabel;
@end


@implementation XXTableViewHeaderFooterView

- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier;
{
    self = [super initWithReuseIdentifier:reuseIdentifier];
    if (self) {
        _myLabel = [[UILabel alloc] initWithFrame:...];
        _myLabel.textColor = ...;
        [self.contentView addSubview:_myLabel];
    }
    return self;
}

@end