SCNView重新调整大小问题

时间:2013-04-22 09:49:29

标签: cocoa scenekit

我正在尝试使用ScreenKit框架在SCNView中渲染3D条形图。

我的渲染代码是,

int height=10,y=0,x=0;
for (int i=0; i<10; i++) {

    SCNBox *box1 = [SCNBox boxWithWidth:4 height:height length:2 chamferRadius:0];
    boxNode1 = [SCNNode nodeWithGeometry:box1];
    boxNode1.position = SCNVector3Make(x, y, 0);
    SCNMaterial *material = [SCNMaterial material];
    material.diffuse.contents  = (NSColor *)[self.colorArray objectAtIndex:i%6];
    material.specular.contents = [NSColor whiteColor];
    material.shininess = 1.0;
    box1.materials = @[material];
    //boxNode1.transform = rot;
    [scene.rootNode addChildNode:boxNode1];
    x+=6;
    height+=10;
    y += 5 ;
}

我可以渲染,但在重新调整视图大小时,图表栏会移到视图的中心。

我需要渲染图表,该图表覆盖视图的边距,并且当重新调整大小时,它必须相应地更改。下面的图片显示了我的问题。


原始图片:

enter image description here


两个窗口拉伸较少的图像:

enter image description here

任何人都可以帮我解决问题。

1 个答案:

答案 0 :(得分:0)

您在原始问题中链接到的图像中的窗口非常紧张,这使得很难看到发生了什么。当我拍摄该图像并使窗口拉伸时,更容易了解发生了什么。

我认为您正在看到一般的调整大小问题。要么使用弹簧和支柱,并且左右配置了灵活的边距,要么使用具有固定宽度的居中视图的自动布局。

我认为在下面的图像中绘制的红色框是这两种情况下场景视图的边界。您可以通过为场景视图提供不同的背景颜色并再次调整大小来轻松查看是否是这种情况。

我的问题解决方案是在窗口调整大小时更改视图调整大小的方式,以更好地满足您的期望。

enter image description here