簡體   English   中英

如何設置UIImageView的適當大小

[英]How to set proper size of UIImageView

我已經從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.imageView.frame 如果我理解正確的問題,那就是問題。

解決了! 簡單:

self.overlayImage.image = self.imageView.image;

代替:

self.overlayImage = self.imageView;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM