self.view addSubview:查看问题..!

时间:2010-07-14 04:24:59

标签: ipad

新手在ipad应用程序中遇到了一个非常奇怪的情况。

我有一个基于视图的应用程序。 鉴于Viewcontroller,我添加了两个按钮来绘制形状。一个是立方体,一个是金字塔。使用openGL代码绘制形状。两种形状都有不同的视图类。

现在分别点击立方体和金字塔的按钮,应该将形状绘制到viewController的视图中。我成功绘制了立方体形状,但无法绘制金字塔形状.. !!!

尝试不同的方法后,我得出的结论是“self.view addSubView:tempView”就是问题所在。此代码适用于多维数据集按钮,但不适用于金字塔。不能解决确切的问题。

这是代码示例

按钮:

cubeButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:CGRectMake(600, -5, 50, 50)];
[cubeButton addTarget:self action:@selector(cubeClicked:) forControlEvents:UIControlEventTouchUpInside];
[cubeButton setBackgroundImage:[UIImage imageNamed:@"square_3D.png"] forState:UIControlStateNormal];

pyramidButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:CGRectMake(700, -5, 50, 50)];
[pyramidButton addTarget:self action:@selector(piramidClicked:) forControlEvents:UIControlEventTouchUpInside];
[pyramidButton setBackgroundImage:[UIImage imageNamed:@"triangle_3D.png"] forState:UIControlStateNormal];

方法示例代码:

-(IBAction) cubeClicked:(id)sender {
    UIView *cubeView = [[CubeView alloc] initWithFrame:CGRectMake(250, 60, 500, 600)];
    [self.view addSubview:cubeView];
}

-(IBAction) piramidClicked:(id)sender {
    UIView *pyramidView = [[pyramidView alloc] initWithFrame:CGRectMake(250, 60, 500, 600)];
    [self.view pyramidView];
}

提前致谢。感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

这是piramidClicked:函数中的拼写错误吗?如果没有,那可能就是问题:

-(IBAction)piramidClicked:(id)sender {
    UIView *pyramidView = [[PyramidView alloc] initWithFrame...];
    // this line probably causes a compiler warning ...
    // [self.view pyramidView];
    [self.view addSubview:pyramidView];
}

如果是拼写错误,我会检查以确保您在Interface Builder中正确连接。希望有所帮助。