UITableViewでカスタムCellを使用した時に表示が重なる
InterfaceBuilderを使用しないでカスタムCellを使用したTableViewを作成しています。
ViewControllerでUITableViewを追加して
CustomCellクラスを作成し、そのContentViewにCustomViewクラスを追加しています。
ViewControllerで
[_tableView registerClass:[CustomCell class] forCellReuseIdentifier:@"Cell"];
を使用して起動すると
1つのセルに複数のセルがかぶって表示されます
ViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    return cell;
}
CustomCell.m
    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
            for (UIView *subview in [self.contentView subviews]) {
                [subview removeFromSuperview];
            }
            _dateLabel  = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, 320 - (16 * 2), 20)];
            _dateLabel.font = [UIFont systemFontOfSize:15];
            _dateLabel.text = [[NSDate date] description];
            [self.contentView addSubview:self.dateLabel];
            // ここのビューがスクロール時に2重に表示されることがある
            CGRect rect1 = CGRectMake(0, 20, 160, 20);
            _view1 = [[CustomView alloc] initWithFrame:rect1];
            [self.contentView addSubview:_view1];
            CGRect rect2 = CGRectMake(160, 20, 160, 20);
            // その他ViewをaddSubView
        }
        return self;
    }
CustomView.m
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
            [self initializeView:frame];
        }
        return self;
    }
    -(void)initializeView:(CGRect)frame
    {
        for (UIView *subview in [self subviews]) {
            [subview removeFromSuperview];
        }
        _titleLabel = [[UILabel alloc] init];
        _titleLabel.frame = CGRectMake(44 + 16, 0, 160 - 44, 22);
        _titleLabel.text = @"text";
        [self addSubview:_titleLabel];
        _conditionLabel = [[UILabel alloc] init];
        _conditionLabel.frame = CGRectMake(44 + 16, 22 + 4, 160 - 44, 22);
        _conditionLabel.text = @"text2";
        [self addSubview:_conditionLabel];
    }
原因はcellForRowAtIndexPathで@"Cell"のIDでセルを再使用しているため起こる原因と思いますが、
registerClassでIDを固定しているため、複数のIDで再使用をしないということができません。
カスタムCellを使用して、そのCellにaddViewした状態で表示が重ならない方法はありますか?
