【问题标题】:Split view into 2 views for google cardboard for iOS将视图拆分为 2 个视图,用于 iOS 的 google cardboard
【发布时间】:2016-03-22 18:09:38
【问题描述】:

我正在使用 https://bitbucket.org/javieralonso/japanoview 为 iOS 应用创建 360 度全景视图。我现在要做的是将视图拆分为 2 个相同的视图,并为它们两个使用一个输入,并且能够在 google cardboard 中使用它。请帮忙。谢谢。

【问题讨论】:

    标签: ios view split panoramas


    【解决方案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,看看能不能正确显示。
    • 终于成功了!我的错误是我没有使用您所做的确切更新方法。感谢您的帮助!
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    相关资源
    最近更新 更多