多个视图的单个相机视图

Posted

技术标签:

【中文标题】多个视图的单个相机视图【英文标题】:Single camera view for multiple views 【发布时间】:2011-11-15 00:17:21 【问题描述】:

我目前有一个使用许多视图的应用。每个视图都使用一个相机视图。该应用程序的用户可以在一个视图中选择某些项目,该项目将显示在相机视图中。基本上,他们可以使用该项目来编辑他们的图片。

我的问题是,相机视图太多,占用太多空间/内存。而且我只想为我的整个应用程序使用一个相机视图。所以这让我想到了我的问题......

当用户在我的一个视图中点击一个项目时。在相机视图上显示他/她点击的那个项目的正确方式是什么。

如果这太混乱了,我很抱歉......

【问题讨论】:

您在哪个平台/操作系统上工作?从您的问题中无法判断。 抱歉,我在 ios iPhone 平台上工作。 【参考方案1】:

有一个控制器类,它指向相机视图和您选择的项目。您可以编写一个方法setItem:,它将覆盖@property UIView *item 的默认设置器。在您实现该方法时,[cameraView addSubview:item] 应该将命名项目添加为相机视图上的覆盖,如果这是您想要的。要删除它,请使用[item removeFromSuperview](每次都这样做,因为即使itemnil,它仍然会正确执行,只是不会做任何事情)。

以上代码:


控制器.h

@property (nonatomic, retain, setter = setItem:) UIView *item;
@property (nonatomic, retain) UIView *cameraView;

控制器.m

@synthesize item, cameraView;    

- (void)setItem:(UIView *)newItem

    [item removeFromSuperview];
    [item release];
    [newItem retain];
    item = newItem;
    [cameraView addSubview:item];

【讨论】:

以上是关于多个视图的单个相机视图的主要内容,如果未能解决你的问题,请参考以下文章

是否可以一次通过多个视图渲染对象

iOS - 创建多个延时实时摄像机预览视图

我们如何在反应原生项目中将多个图像合并为单个图像

多个容器视图 VS 链接到单个容器视图的多个视图控制器

多个摄像头视图显示相同的摄像头馈送

如何在多个图像视图中设置多个图像