Ios 如何设置UIImageView的适当大小

Ios 如何设置UIImageView的适当大小,ios,objective-c,xcode,uiimageview,uiimagepickercontroller,Ios,Objective C,Xcode,Uiimageview,Uiimagepickercontroller,我从developer.apple.com下载了示例代码“使用UIImagePickerController选择图片并拍照”,基本上我保持原样。我添加了一些功能,如果我拍了一些照片,并且我再次在imagePickerController视图中拍摄另一张照片,它将与之前拍摄的照片重叠。还有一个滑块,我可以改变不透明度的覆盖,工程伟大 然而,之前拍摄的照片并没有缩放以适应视图,而是只能看到原始分辨率的部分。那么如何将overlayImage设置为合适的大小呢?我尝试过使用故事板/nib文件/以编程方

我从developer.apple.com下载了示例代码“使用UIImagePickerController选择图片并拍照”,基本上我保持原样。我添加了一些功能,如果我拍了一些照片,并且我再次在imagePickerController视图中拍摄另一张照片,它将与之前拍摄的照片重叠。还有一个滑块,我可以改变不透明度的覆盖,工程伟大

然而,之前拍摄的照片并没有缩放以适应视图,而是只能看到原始分辨率的部分。那么如何将overlayImage设置为合适的大小呢?我尝试过使用故事板/nib文件/以编程方式添加它,但没有成功

@property (nonatomic, weak) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIImageView *overlayImage;
@property (nonatomic) IBOutlet UIView *overlayView;
方法如下:

- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType
{
if (self.imageView.isAnimating)
{
    [self.imageView stopAnimating];
}

if (self.capturedImages.count > 0)
{
    //[self.capturedImages removeAllObjects];
}

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
imagePickerController.sourceType = sourceType;
imagePickerController.delegate = self;
imagePickerController.showsCameraControls = NO;

if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
    [[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self options:nil];
    self.overlayView.frame = imagePickerController.cameraOverlayView.frame;
    imagePickerController.cameraOverlayView = self.overlayView;
    self.overlayView = nil;
    self.overlayImage = self.imageView;
    self.overlayImage.alpha = 0.5;

    UISlider *slider=[[UISlider alloc]initWithFrame:CGRectMake(60, 80, 200, 30)];
    [slider setMaximumValue:1.0];
    [slider setMinimumValue:0.0];
    [slider setValue:0.5];
    [slider addTarget:self action:@selector(sliderChanged:)  forControlEvents:UIControlEventValueChanged];

    if (self.capturedImages.count > 0)
    {
        [imagePickerController.cameraOverlayView addSubview:self.overlayImage];
        [imagePickerController.cameraOverlayView addSubview:slider];
    }
}

self.imagePickerController = imagePickerController;
[self presentViewController:self.imagePickerController animated:YES completion:nil];
}

在您的代码示例中,我在任何地方都看不到设置
self.imageView.frame
。如果我理解正确,这就是问题所在。

解决了!简单来说:

self.overlayImage.image = self.imageView.image;
而不是:

self.overlayImage = self.imageView;

谢谢,我试过self.imageView.frame=CGRectMake(0,0200200);另外self.overlayView.frame=CGRectMake(0,0200200);他们都没有解决我的问题,每次拍摄的照片都是在原来的大小。如果手动设置框架没有帮助,这意味着,你有。