0

私はこのUIButtonを持っています、彼は画像を持っています、通常のiPhoneではそれはうまく機能し、画像contentModeはUIViewcontentModeCenterに設定されています。しかし、網膜では、画像は中央になく、大きく、ボタンのフレームに収まりません。

それはなぜですか、どうすれば修正できますか?

[theImageView setImage:Image forState:UIControlStateNormal];
[theImageButton setImage:Image forState:UIControlStateHighlighted];
[theImageButton setImage:Image forState:UIControlStateSelected];
[theImageButton setBackgroundColor:[UIColor clearColor]];
[theImageButton addTarget:self action:@selector(dismissKeyboard:) forControlEvents:UIControlEventAllTouchEvents];
theImageButton.imageView.contentMode = UIViewContentModeCenter;

画像の読み込み:

- (UIImage *)loadScreenShotImageFromDocumentsDirectory
{
    UIImage * tempimage;
    NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
    NSString *docDirectory = [sysPaths objectAtIndex:0];
    NSString *filePath = [NSString stringWithFormat:@"%@/MeasureScreenShot.png", docDirectory];
    tempimage = [[UIImage alloc] initWithContentsOfFile:filePath];

    return tempimage;
}

contentModeに読み込まれた画像は、プログラムで撮影されたスクリーンショットであると言わざるを得ません。多分それはそれと関係があります(とにかく通常のディスプレイではそれはうまくいきます)。

ありがとう!

4

1 に答える 1

0

1.0スケールの網膜画像を取得しているように聞こえます。画像が実際には2.0であることをシステムに通知する必要があります。コンテキストを使用してスクリーンショットをキャプチャする場合は、

UIGraphicsBeginImageContextWithOptions(..., ..., 0.0);

0.0現在のデバイスのメイン画面のスケールを使用するように指示します。または、自分で正しいスケールを指定することもできます。

于 2012-10-24T15:00:26.843 に答える