我有这个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中的图像是以编程方式拍摄的屏幕截图。也许它与它有关(无论如何在正常显示器上它工作正常)。
谢谢!
答案 0 :(得分:0)
听起来像是你的视网膜图像,有1.0的比例。您需要告诉系统,您的图像实际上是2.0,如果您使用上下文捕获屏幕截图,请使用
UIGraphicsBeginImageContextWithOptions(..., ..., 0.0);
0.0
告诉它使用当前设备的主屏幕比例,或者您可以自己指定正确的比例。