Z轴支持查看UIView

时间:2013-08-23 07:50:02

标签: ios cocos3d

我想从主摄像机视图向前放置一个UIView在Z轴上。我添加了如下代码。我正在尝试使用CATransform3DTranslate,但是JAPanoView(它的uiview)在Z轴值中没有显示在前面的摄像机视图中。有人可以建议,我该如何实现呢?

    -(void) initializeScene {

    // Create the camera, place it back a bit, and add it to the scene
    CC3Camera* cam = [CC3Camera nodeWithName: @"Camera"];
    cam.location = cc3v( 0.0, 0.0, 12.0 );
    [self addChild: cam];

    // Create a light, place it back and to the left at a specific
    // position (not just directional lighting), and add it to the scene
    CC3Light* lamp = [CC3Light nodeWithName: @"Lamp"];
    lamp.location = cc3v( 0.0, 40.0, 0.0 );
    lamp.isDirectionalOnly = NO;
    [cam addChild: lamp];

    // JAPanoView IS AN UIVIEW
    JAPanoView *panoView=[[JAPanoView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
    //self.view=panoView;
    panoView.delegate=self;
    [panoView setFrontImage:[UIImage imageNamed:@"Home_front.png"] rightImage:[UIImage imageNamed:@"Home_right.png"] backImage:[UIImage imageNamed:@"Home_back.png"] leftImage:[UIImage imageNamed:@"Home_left.png"] topImage:[UIImage imageNamed:@"Home_up.png"] bottomImage:[UIImage imageNamed:@"Home_down.png"]];

    CATransform3D _3Dt = CATransform3DIdentity;
    _3Dt = CATransform3DTranslate(_3Dt, 0, 0, -30);
    panoView.layer.transform = _3Dt;

    [[[CCDirector sharedDirector] openGLView] addSubview:panoView];

    // Create OpenGL ES buffers for the vertex arrays to keep things fast and efficient,
    // and to save memory, release the vertex data in main memory because it is now redundant.
    [self createGLBuffers];
    [self releaseRedundantData];
}

1 个答案:

答案 0 :(得分:1)

UIViews的z顺序是他们在superview的subviews属性中的顺序。要在另一个用户面前进行子视图,您可以简单地按正确的顺序添加子视图,按此顺序将它们放在XIB文件中或使用bringSubviewToFront。