【问题标题】:Create Overlay View on top of UIImagePickerController with Storyboard使用 Storyboard 在 UIImagePickerController 之上创建叠加视图
【发布时间】:2015-01-23 04:00:31
【问题描述】:

我正在尝试在我的 UIImagePickerController 相机预览屏幕上创建自定义叠加层。我不确定如何使用带有情节提要的 XCode 6 来做到这一点。我正在使用Objective-C。

我已经进行了相机预览。我在情节提要中创建了一个 UIView,并使用了:picker.cameraOverlayView = overlay;

创建覆盖视图。但是如何将故事板中的 UIView 连接到代码中的覆盖层?在我看来,UIView 总是显示在 UIImagePickerController 的相机预览下方。如何将自定义叠加层放置在 UIImagePickerController 视图的“顶部”?

谢谢

【问题讨论】:

  • 我能想到的是从一个nib文件中加载视图,然后将其分配给cameraOverlayView。

标签: ios objective-c uiview storyboard uiimagepickercontroller


【解决方案1】:

我通过使用图像 png 并将其显示在顶部来实现这一点...创建一个类“OverlayView”...

.h

#import <UIKit/UIKit.h>

@interface OverlayView : UIView

@end  

.m

#import "OverlayView.h"

@implementation OverlayView


- (id)initWithFrame:(CGRect)frame {
  if (self = [super initWithFrame:frame]) {
    //clear the background color of the overlay
    self.opaque = NO;
    self.backgroundColor = [UIColor clearColor];

    //load an image to show in the overlay

    UIImage *overlayImgae = [UIImage imageNamed:@"overlay.png"];
    UIImageView *overlayImageView = [[UIImageView alloc]
                                 initWithImage:overlayImage];
    overlayImageView.frame = CGRectMake(115, -20, 815, 815);
    [self addSubview:overlayImageView];

    }

    return self;
    }

    @end

根据你的图片大小改变CGRectMake...然后在你初始化imagePicker的ViewController中做

#import "OverlayView.h"

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];




OverlayView *overlay = [[OverlayView alloc]
                        initWithFrame:CGRectMake(0, -24.25, SCREEN_WIDTH, SCREEN_HEIGTH)];

imagePicker.cameraOverlayView = overlay;

再次更改 CGRectMake 数字以适应...

【讨论】:

  • 这是一个糟糕的解决方案。你应该使用自动布局来适应不同的屏幕尺寸
  • “再次更改 CGRectMake 数字以适应...”并且通过上面的代码,如果他定义 SCREEN_WIDTH 和 SCREEN_HEIGTH...,它将始终是全屏的?谁需要 AL?做数学..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2016-03-15
  • 1970-01-01
  • 2015-07-24
  • 2012-03-10
  • 2011-09-27
  • 1970-01-01
相关资源
最近更新 更多