将视图拆分为 2 个视图,用于 iOS 的 google cardboard
Posted
技术标签:
【中文标题】将视图拆分为 2 个视图,用于 iOS 的 google cardboard【英文标题】:Split view into 2 views for google cardboard for iOS 【发布时间】:2016-03-22 18:09:38 【问题描述】:我正在使用 https://bitbucket.org/javieralonso/japanoview 为 ios 应用创建 360 度全景视图。我现在要做的是将视图拆分为 2 个相同的视图,并为它们两个使用一个输入,并且能够在 google cardboard 中使用它。请帮忙。谢谢。
【问题讨论】:
【参考方案1】:我曾经以此为灵感来做同样的事情。 https://github.com/nicklockwood/ReflectionView 将反射设置为动态。视图是镜像的,但您可以通过删除小于零的值来修复。 还要翻译方法以使其彼此相邻。删除渐变绘图,您就可以开始了:)
【讨论】:
首先感谢您与我分享该代码。我已经能够创建我正在寻找的粗略版本。我感到困惑的是,当您说“视图是镜像的,但是如果您可以通过删除小于零的值来修复。还可以转换方法以使其彼此相邻。删除渐变绘图,您就可以开始了”。您具体指的是哪些变量和方法?【参考方案2】:在情节提要中添加要在屏幕左半部分复制的视图,并将其 Class 设置为 ReflectionView。 反射视图实现更改将如下所示:
- (void)update
//update instances
CAReplicatorLayer *layer = (CAReplicatorLayer *)self.layer;
layer.shouldRasterize = YES;
layer.rasterizationScale = [UIScreen mainScreen].scale;
layer.instanceCount = 2;
CATransform3D transform = CATransform3DIdentity;
transform = CATransform3DTranslate(transform, layer.bounds.size.width + _reflectionGap, 0.0f, 0.0f);
transform = CATransform3DScale(transform, 1.0f, 1.0f, 0.0f);
layer.instanceTransform = transform;
layer.instanceAlphaOffset = 1.0f;
- (void)setUp
//set default properties
_reflectionGap = 0.0f;
_dynamic = YES;
//update reflection
[self setNeedsLayout];
【讨论】:
我使用了您的代码,但只显示了 1 个视图,并且未显示反射视图。我正在尝试并排显示 2 个视图。 禁用该视图上的剪辑子视图 我做了,但它仍然没有显示。我不知道要更改哪个值。我已经尝试过更改 translate 和 transform 方法的值,但我仍然无法得到我想要的。 我发送的代码已经过测试,不需要更改翻译方法。尝试在里面放一些subview,看看能不能正确显示。 终于成功了!我的错误是我没有使用您所做的确切更新方法。感谢您的帮助!以上是关于将视图拆分为 2 个视图,用于 iOS 的 google cardboard的主要内容,如果未能解决你的问题,请参考以下文章