在IOS7中创建动态自定义单元格

时间:2014-06-04 20:51:42

标签: uitableview custom-component ios7.1

我正在尝试创建一个扩展UITableViewCell的自定义类。我添加了一个布尔值(isValid),可以将其设置为切换验证状态的可视指示器。当调用isValid的setter时,它会设置属性并调用另一个方法来更新单元格的borderColor和detailTextLabel的文本颜色。所有更改都正确,但单元格实际上从未在我的应用程序中更新。我已经尝试了一切我能想到的让细胞刷新但没有成功。我确定有一些明显的东西我在这里失踪,有人请帮帮忙!

P.S。如果它有帮助,使用此单元格的表I具有静态行内容,因此我不认为它是重用问题。

更新: 根据要求,这里有一些源代码:

标题

//  NewPlayerCell.h
#import <UIKit/UIKit.h>

@interface NewPlayerCell : UITableViewCell

@property(strong,nonatomic) UIColor *cellColor;
@property(weak,nonatomic) IBOutlet UITextField *nameTextField;

@end

实施

//
//  NewPlayerCell.m
//

#import "NewPlayerCell.h"

@implementation NewPlayerCell

- (void) setCellColor: (UIColor*)color
{
    _cellColor = color;
    [self update];

}

-(void)update
{
    if(self.cellColor!=nil)
    {
        self.contentView.layer.borderColor = self.cellColor.CGColor;
    }
    if(self.detailTextLabel!=nil)
    {
        self.nameTextField.textColor = self.cellColor;
    }
    [self layoutIfNeeded];
}
@end

TableView控制器

//Just a quick and dirty testing method that updates the color of
//any visible NewPlayCell objects in response to a button touch.
-(IBAction)colorChange:(id)sender
{
    [[self.tableView visibleCells] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        if( [obj isKindOfClass:[NewPlayerCell class]])
        {
            if( [game isEqualToString:@"Chess" ])
            {
                ((NewPlayerCell *) obj).cellColor = [UIColor redColor];
            }
            else
            {
                ((NewPlayerCell *) obj).cellColor = [UIColor blueColor];
            }
        }
    }];
}

0 个答案:

没有答案