首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 4.3上的cameraOverlayView问题

iOS 4.3上的cameraOverlayView问题
EN

Stack Overflow用户
提问于 2011-05-10 23:27:23
回答 5查看 2.7K关注 0票数 7

我正在使用一个带有cameraOverlayView的拾取器控制器在相机视图中显示产品的图像。在覆盖上应用之前,会调整产品图像的大小。它在iOS 4.2上运行良好,但在iOS 4.3上,产品图像是全尺寸显示的。

代码语言:javascript
复制
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显示。我知道iOS 4.3中的cameraOverlayView已经被修改了,但是我不知道有什么改变,也不知道我必须做什么来纠正我的应用程序。

谢谢你的帮助。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-02 12:05:07

在iOS 4.3中,覆盖视图被拉伸到全屏。由于您将内容模式设置为纵横比适合,因此图像将被拉伸以适合新的视图大小320x480。

你需要制作一个全屏的透明UIView,将图像视图添加到该视图中,并将该UIView设置为新的覆盖视图。

代码语言:javascript
复制
UIView *fullscreenView = [[UIView alloc] initWithFrame:CGRectZero];
fullscreenView.backgroundColor = [UIColor clearColor];
....
 [fullscreenView addSubview:imgView];
pickerController.cameraOverlayView = fullscreenView;
票数 2
EN

Stack Overflow用户

发布于 2011-06-16 22:35:39

找到似乎符合要求的this article。它的长处和短处在于使用

代码语言:javascript
复制
- (UIImage *)
  resizedImageWithContentMode:(UIViewContentMode)contentMode
                       bounds:(CGSize)bounds
         interpolationQuality:(CGInterpolationQuality)quality;
票数 0
EN

Stack Overflow用户

发布于 2011-07-07 14:19:24

在代码中注释掉这一行

imgView.clipsToBounds = NO;

应该能行得通。如果你真的想剪辑,@slf的答案应该会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5952492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档