1

我有一个类 MTTableViewCell : UITableViewCell 类中的 init 方法如下: 注意我将背景色设置为紫色。

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if(self)
    {
    [self setBackgroundColor:[UIColor purpleColor]];
    }
    return self;

   // return [self initMVTableViewCellWithStyle:style reuseIdentifier:reuseIdentifier cellColor:nil];
}

我从 tableview 的委托中调用以下方法

 -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {

        static NSString* identifier = @"one";
        [self.tableView registerClass:[MVTTableViewCell class] forCellReuseIdentifier:identifier];

        MVTTableViewCell *cell = [[MVTTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];

        cell.textLabel.text = [self->datasource objectAtIndex:[indexPath row]];
        return cell;



    }

但是我看不到表格视图单元格的颜色有任何变化。出了什么问题?

4

3 回答 3

1

当我想改变我的单元格的背景颜色时,我通常使用这个:

 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if(self)
   {
     [self.contentView setBackgroundColor:[UIColor purpleColor]];
   }
    return self;


}
于 2013-08-30T03:27:45.390 回答
1

我会尝试将您的注册类调用移动到您的 viewDidLoad 方法,而不是分配/初始化单元格,而是尝试从表中取出一个。通过注册单元格的类以供重复使用,您正在准备将其按表回收。注意:确保您注册的单元格 ID 与您在 cellForRowAtIndexPath 中访问的单元格 ID 相同:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.tableView registerClass:[MVTTableViewCell class] forCellReuseIdentifier:@"one"];
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *identifier = @"one";

    MVTTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath];

    cell.textLabel.text = [self->datasource objectAtIndex:[indexPath row]];
    return cell;
}

不幸的是,我不在可以测试它的机器上,在这种情况下我似乎不记得单元调用结构(已经很晚了:))但我会检查是否可能调用了不同的 init,否则,尝试在 cellFor... 中设置背景颜色只是为了排除故障。尝试将其设置在单元格的 contentView 上。

于 2013-08-30T03:18:12.757 回答
0

按照这个...自定义表格视图单元格

标题和副标题之间的 UITableViewCell 空间 -iOS

http://www.appcoda.com/customize-table-view-cells-for-uitableview/

于 2013-08-30T05:42:15.893 回答