1

クラス MTTableViewCell があります: UITableViewCell クラスの init メソッドは次のとおりです: backgroundcolor を紫に設定していることに注意してください。

- (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];
}

テーブルビューのデリゲートから次のメソッドを呼び出します

 -(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 に答える