美文网首页全景VR播放器ANTVRSDK- ios 使用详解
3、如何布局空间UI - ANTImageView

3、如何布局空间UI - ANTImageView

作者: ARVRSchool | 来源:发表于2016-10-28 22:44 被阅读35次

上篇文章介绍了所有对象的基类ANTBaseObject和ANTRenderObject,在本篇文章中,将开始进行实战操作。

在操作之前还是提一下上篇提到的渲染模型总类,如下:
本章节之介绍其中常用的渲染模型(全景、平面),其余的渲染模型自己看提供的demo使用。

// 渲染模型
typedef NS_ENUM(NSInteger, ANTRenderModel) {
    ANTVR_2D,                                   // 2d
    ANTVR_SPHERE,                               // 全景
    ANTVR_STEREO_SPHERE_LEFT_RIGHT,             // 立体全景 - 左右
    ANTVR_STEREO_SPHERE_UP_DOWN,                // 立体全景 - 上下
    ANTVR_PLANE,                                // 平面
    ANTVR_STEREO_PLANE_LEFT_RIGHT,              // 立体平面 - 上下
    ANTVR_STEREO_PLANE_UP_DOWN,                 // 立体平面 - 左右
    ANTVR_FISHSPHERE_HIGH,                      // 960 * 2560
    ANTVR_FISHSPHERE_RETINA_HIGH,               // 1520 * 2688
    ANTVR_FISHSPHERE_MEDIUM,                    // 960 * 1920
    ANTVR_FISHSPHERE_RETINA_MEDIUM,             // 1080 * 1920
};

首先实例化对象:

// 创建全景360度图片
ANTImageView *object = [[ANTImageView alloc] initWithMode:ANTVR_SPHERE];
[object setupTextureWithImage:[UIImage imageNamed:@"test0.jpg"]];
[self.antLibrary addSubObject:object];

这样就将全景图添加到场景中了。
注:在全景/蚁视模式下,不需要设置对象的position,因为摄像机的位置正好在(0.0,0.0,0.0)的位置。

Paste_Image.png

添加图片的方法多种方式 ,可以根据情况选择:(可以添加网络图片,左右两张图片等等)

/**
 * 设置图片纹理 图片名
 * @param imageName 图片image
 */
- (void)setupTextureWithImage:(UIImage *)imageName;

/**
 * 设置图片纹理 网络下载
 * @param url 网络地址/自动缓存
 */
- (void)setupTextureWithUrl:(NSString *)fileUrl;

/**
 * 设置图片纹理 图片名
 * @param color 根据图片颜色生成纹理
 * @param frameSize 生成图片的尺寸
 */
- (void)setupTextureWithColor:(UIColor *)color Rect:(CGRect)frameSize;

/**
 * 设置左右屏幕图片纹理
 */
- (void)setTextureWithLeftImage:(UIImage *)LeftImage RightImage:(UIImage *)rightImage;

- (void)setTextureWithLeftUrl:(NSString *)leftUrl RightUrl:(NSString *)rightUrl;

如果要对对象设置坐标,或者旋转角度,或缩放系数:

[object setPosition:0.0 Y:0.0 Z:-1.0];
[object setScale:1.0 Y:1.0 Z:1.0];
[object setRotate:-90 X:0.0 Y:1.0 Z:0.0];
// 创建平面图片
ANTImageView *object = [[ANTImageView alloc] initWithMode:ANTVR_PLANE];
[object setupTextureWithImage:[UIImage imageNamed:@"test1.jpg"]];
[object setObjectRect:16.0 Height:9.0]; // 设置图像的宽高比,默认为2.0,2.0
[self.antLibrary addSubObject:object];
[object setPosition:0.0 Y:0.0 Z:-15.0];
Paste_Image.png

这样就简单的实现了加载图到场景中。若要开启焦点拾取对象的功能,则需满足两个条件:
1、[self.antlibrary setFocusPicking:YES];
2、开启对象自身的监听block;

[object willSelectImageViewCallBack:^(ANTImageView *imgv) {
         // 焦点刚拾取到对象边缘    
 }];
    
[object didSelectImageViewCallBack:^(ANTImageView *imgv) {
       // 焦点已经选中对象,进度圈走完
}];
    
[object didLeaveImageViewCallBack:^(ANTImageView *imgv) {
        //  焦点离开对象边缘
}];
Paste_Image.png

关于ANTImageView的基本动画我就不介绍了,使用方法在上一篇章中已经涉及到了。
ANTImageView的最基本的使用大体上就是这些,其他的一些的高级效果,如剪裁、变形、图像的各种滤波效果就不再这一一介绍了,具体使用方法看我提供的demo。

使用ANTImageView这个对象就可以轻松的布局3D空间中的UI了。放上一张之前布局的一张UI空间图:

Paste_Image.png

相关文章

  • 3、如何布局空间UI - ANTImageView

    上篇文章介绍了所有对象的基类ANTBaseObject和ANTRenderObject,在本篇文章中,将开始进行实...

  • 4、空间中如何做到播放视频 - ANTVideo

    上篇文章介绍了空间UI的布局,本篇我将介绍如何往场景中添加视频。ANTVideo可支持的播放器:AVPlayer:...

  • ios项目需求分析 geekband

    1.看ui界面如何布局2.每个空间的规则,根据要求用户思维角度考虑.3分析.设计4程序设计,体现逻辑5代码显示结构如下图

  • flutter 动手篇2 - 弹性布局 Flex

    弹性布局 Flex 弹性布局 弹性布局允许子widget按照一定比例来分配父容器空间,弹性布局的概念在其UI系统中...

  • 旅游空间布局

    什么是旅游空间布局 目录 1什么是旅游空间布局 2旅游空间布局的基本原则 3旅游空间布局的基础理论 一、旅游空间布...

  • SAP UI5 sap.ui.layout.Grid 控件概述

    这个控件的命名空间:sap.ui.layout.Grid 一个布局控件,将其子控件放置在 12 列流布局中。 根据...

  • 「十六天计划」第四天

    @2.9 1.UI设计 2.用户界面,页面布局,ui组件, 3.监听过程: 1-加载页面布局 2-调用findVi...

  • UI设计作品点评

    UI设计作品关注以下维度 UI层:空间布局、图标细节、色彩使用、图片素材; UE层:产品策略、用户体验、交互设计、...

  • APP开发实战124-APP UI性能优化

    30.4UI性能优化 1 通过标签嵌入布局。 2 使用Fragment复用布局。 3 通过标签减少布局层次。 4 ...

  • 仿网易新闻首页UI布局

    title : 仿网易新闻首页UI布局category : UI 仿网易新闻首页UI布局 标签(空格分隔): UI...

网友评论

    本文标题:3、如何布局空间UI - ANTImageView

    本文链接:https://www.haomeiwen.com/subject/uabeuttx.html