0

スーパービューの深さ3レベルのUIImageViewがあります。(灰色の長方形の上の白い領域は私のスーパービュー、灰色の細長い長方形は 1 つのサブビュー、黒い正方形は細長い灰色の長方形の別のサブビュー、歯車は黒い正方形のサブビューである UIImageView のイメージです) )。UIImageView のフレーム矩形は次のように計算されます。ここで、_normalImage は UIImage オブジェクトです。黒い四角を表すサブクラス内でこれを行います

    CGFloat xPoint = self.bounds.size.width/2 - _normalImage.size.width/2;
    CGFloat yPoint = self.bounds.size.height/2 - _normalImage.size.height/2;
    CGRect frameRect = CGRectMake(xPoint, yPoint, _normalImage.size.width, _normalImage.size.height);
    self.imageHolder = [[UIImageView alloc] initWithFrame:frameRect];

ここに画像の説明を入力

_normalImage は 26X26 で、完全な正方形である必要があります。ただし、画像は縦横比が失われたかのように歪んで表示されます。

どうしたの ?

4

2 に答える 2

0

座標に小数部分が含まれないように、座標に floorf() 関数を使用してみてください。

于 2012-10-16T16:02:17.960 に答える
0

デフォルトでは UIViewContentModeScaleToFill コンテンツ モードを使用するため、画像が引き伸ばされます。

self.imageHolder.contentMode = UIViewContentModeScaleAspectFit;
于 2012-10-16T16:04:50.433 に答える