我使用带有cameraOverlayView的选择器控制器在相机视图中显示产品的图像。在应用到覆盖层之前,产品图像会调整大小。
它在 iOS 4.2 上运行良好,但在 iOS 4.3 上产品图像显示为全尺寸。
pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
UIImageView *imgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:produitAffiche.img_realite]] autorelease];
// Resize
if(imgView.frame.size.height == 480)
{
//Portrait
imgView.frame = CGRectMake(80.0f, 120.0f, 160.0f, 240.0f);
}
else
{
// Landscape
imgView.frame = CGRectMake(40.0f, 160.0f, 240.0f, 160.0f);
}
imgView.contentMode = UIViewContentModeCenter;
imgView.clipsToBounds = NO;
imgView.contentMode = UIViewContentModeScaleAspectFit;
pickerController.cameraOverlayView = (UIView *) imgView;
我更改了用作叠加层的 UIImageView 的框架,但它仍然以 320*480 显示。
我知道 CameraOverlayView 在 iOS 4.3 中已被修改,但我不知道发生了什么变化以及我必须做什么来纠正我的应用程序。
感谢您的帮助。
在 iOS 4.3 中,覆盖视图被拉伸至全屏。由于您将内容模式设置为宽高比,因此图像会拉伸以适应新的视图尺寸(320x480)。
您需要创建一个全屏的透明 UIView,将 imageview 添加到该视图并使 UIView 成为新的覆盖视图。
UIView *fullscreenView = [[UIView alloc] initWithFrame:CGRectZero];
fullscreenView.backgroundColor = [UIColor clearColor];
....
[fullscreenView addSubview:imgView];
pickerController.cameraOverlayView = fullscreenView;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)