使用 Storyboard 在 UIImagePickerController 之上创建叠加视图
Posted
技术标签:
【中文标题】使用 Storyboard 在 UIImagePickerController 之上创建叠加视图【英文标题】:Create Overlay View on top of UIImagePickerController with Storyboard 【发布时间】:2015-01-23 04:00:31 【问题描述】:我正在尝试在我的 UIImagePickerController 相机预览屏幕上创建自定义叠加层。我不确定如何使用带有情节提要的 XCode 6 来做到这一点。我正在使用Objective-C。
我已经进行了相机预览。我在情节提要中创建了一个 UIView,并使用了:picker.cameraOverlayView = overlay;
创建覆盖视图。但是如何将故事板中的 UIView 连接到代码中的覆盖层?在我看来,UIView 总是显示在 UIImagePickerController 的相机预览下方。如何将自定义叠加层放置在 UIImagePickerController 视图的“顶部”?
谢谢
【问题讨论】:
我能想到的是从一个nib文件中加载视图,然后将其分配给cameraOverlayView。 【参考方案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?做数学..以上是关于使用 Storyboard 在 UIImagePickerController 之上创建叠加视图的主要内容,如果未能解决你的问题,请参考以下文章