iOS7になって色々変わりましたが、UITableViewCellのimageView(UIImageView)の位置が15pxずれるようになりました。

<!-- more -->

  • iOS6

  • iOS7

色々調べたのですが、自力で位置を変更することはできないようです。

http://stackoverflow.com/questions/19103155/ios7-tableview-cell-imageview-extra-padding

解決方法としては、UITableViewCellのimageViewを使わずに、ContentViewに自分で用意したUIImageViewをAddするのがよさそうです。


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

    [self updateCell:cell forIndexPath:indexPath];

    return cell;
}

- (void)updateCell:(UITableViewCell *)cell forIndexPath:(NSIndexPath *)indexPath
{
    NSString *str = [_array objectAtIndex:indexPath.row];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(52.0, 0.0, 88.0, 44.0)];
    label.text = str;
    [cell.contentView addSubview:label];

    UIImage *image = [UIImage imageNamed:str];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 44.0, 44.0)];
    imageView.image = image;
    [cell.contentView addSubview:imageView];

}

  • 修正後