ボタンを押すとTableViewのセルを拡大させようとしており、セルは拡大するのですが、その拡大したセルの下のセルが、拡大の影響で少し隠れてしまいます。なので隠れるセルを下にずらしたいのですが、現在のコードだとなぜか上のセルが下にずれてしまいます。
下記にコードを記します。全て載せると長くなるので、大事だと思うところを載せました。
なぜ一つ上のセルが下にずれてしまうのでしょうか?
どなたか分かる方がいれば教えていただきたいです。すみませんが、よろしくお願いします。

ViewController.m

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

    static const id identifiers[4] = {@"normalCell", @"cell", @"halfCell", @"normalCell"};
    NSString *CellIdentifier = identifiers[indexPath.row];

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        switch (indexPath.row) {
            case 0:
                cell = [[NormalScrollCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
                break;
            case 1:
                cell = [[PagerCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
                break;
            case 2:
                cell = [[HalfPager alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
                break;
            default:
                cell = [[NormalScrollCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
                break;
        }
    }

    PagerCell *pagerCell = (PagerCell*)cell;
    NormalScrollCell *normalCell = (NormalScrollCell*)cell;
    HalfPager *halfCell = (HalfPager*)cell;

    switch (indexPath.row) {
        case 0:
            [normalCell setNormalScrollPager:normalCell.normalScrollPager];
            break;
        case 1:
            [pagerCell setViewPager:pagerCell.viewPager :pagerCell :halfCell];
            break;
        case 2:
            [halfCell setHalfPager:halfCell.scrollView];
            break;
        default:
            [normalCell setNormalScrollPager:normalCell.normalScrollPager];
            break;
    }

    return cell;
}

PagerCell.m

- (void)setViewPager:(UIScrollView *)scrollView :(PagerCell*)cell :(HalfPager*)halfPager{
    _pagerCell = cell;
    _halfCell = halfPager;
    pagerScroll = scrollView;

    for (NSUInteger i = 1; i <= 3; i++) {
        NSString *imageName = [NSString stringWithFormat:@"image%d.png", i];
        UIImage *image = [UIImage imageNamed:imageName];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

        CGRect rect = imageView.frame;
        rect.size.height = kScrollObjHeight;
        rect.size.width = kScrollObjWidth;
        imageView.frame = rect;
        imageView.tag = i;
        [scrollView addSubview:imageView];

        [self saveImageView:imageView :i];
    }

    [self layoutScrollImages];
}

- (void)changeImageViewSize:(UIImageView*)imageView {   //ボタンが押された時の拡大処理
    CGRect imageViewRect = imageView.frame;
    imageViewRect.size.height = kScrollObjHeight * 1.5;
    imageView.frame = imageViewRect;

    _halfCell.frame = CGRectOffset(_halfCell.frame, 0, 50);   //セルを下にずらす処理を行っている
}