0

カスタムセルを表示するビューテーブルビューがあります。これらのセルにはUIImageViewがあり、デバイスが横向きモードの場合は拡大縮小する必要があります。

autoresizingMasktableViewのをに設定しUIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth、カスタムセルとUIImageViewに対して同じことを行いました。

私の問題は、UIImageViewの設定autoresizingMaskにより、デバイスを回転させることなくビューのフレームが変更されることです。

これは、UIImageViewの初期化コードです。

- (UIImageView *)bigImageView
{
  if (!_bigImageView)
  {
    _bigImageView = [[UIImageView alloc] initWithFrame:(CGRect){2, [self.header getHeight], 272, 272}];
    [_bigImageView setImage:[UIImage imageNamed:@"square.png"]];

    [_bigImageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];

    [_bigImageView setBackgroundColor:[UIColor redColor]];

  }
  return _bigImageView;
}

幅は272である必要がありますが、自動的に232に変更されます。

で期待される結果は次のautoresizingMask ようになります。 TableViewは青、UIImageViewは赤

しかし、私は得ます:

影を気にしないでください

比率はもう尊重されていません。

4

1 に答える 1

1

これは、すべてのセルが 44 ポイントの高さで始まるために発生します。init で確認できます。

drawRect:またはのセル要素のサイズを修正できるかもしれませんlayoutSubviews

于 2012-12-30T12:15:04.267 に答える