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 回答