事情是这样的:
-(void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
GLfloat firstBar=[self.myFirstBar.text floatValue];
GLfloat secondbar=[self.mySecondBar.text floatValue];
GLfloat thirdBar=[self.myThirdBar.text floatValue];
GLfloat fourthBar=[self.myFourthBar.text floatValue];
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
GLint situationNum=_situationBar.selectedSegmentIndex;
[m_FourBar draw:firstBar secondBar:secondbar thirdBar:thirdBar fourthBar:fourthBar situation:situationNum];
}
这是viewcontroller中的glkview。因为firstBar,secondBar,thirdBar和fourthBar都是我要传递给 draw方法的数字:firstBar secondBar:secondbar thirdBar:thirdBar fourthBar:fourthBar situation:situationNum 。 如果我将四个条形设置为数字而不是变量,它的效果很好。但我想使用它,因为用户可以在文本字段中键入数字。然后按下按钮激活它。这是viewcontroller中的uibutton:
-(IBAction)startButton:(UIButton *)sender {
GLfloat firstBar=[self.myFirstBar.text floatValue];
GLfloat secondbar=[self.mySecondBar.text floatValue];
GLfloat thirdBar=[self.myThirdBar.text floatValue];
GLfloat fourthBar=[self.myFourthBar.text floatValue];
GLint situationNum=_situationBar.selectedSegmentIndex;
[m_FourBar draw:firstBar secondBar:secondbar thirdBar:thirdBar fourthBar:fourthBar situation:situationNum];
}
draw:firstBar secondBar:secondbar thirdBar:thirdBar fourthBar:fourthBar situation:situationNum 是另一个类的方法。
我还发现glkview可以让opengl直接绘制动画,这意味着它可以多次调用该方法。这是为什么? 非常感谢你的帮助。