TableViewのセルを下にずらす
ボタンを押すと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); //セルを下にずらす処理を行っている
}