2010-07-14 6 views
0

новичок в приложениях ipad здесь, застрял в очень странном состоянии.self.view addSubview: просмотр проблема ..!

У меня есть одно приложение на основе представления. С учетом 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]; 
} 

спасибо заранее. Я ценю вашу помощь.

ответ

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. Надеюсь, это поможет.

+0

Done !! ..... initWithFrame - единственная проблема ..... У initWithFrame в PrismView была ошибка, поэтому не удалось добавить в представление viewcontroller. RJ Regenold: На самом деле я не использую IB ... Делал все программно. Спасибо за ответ. – rohan

Смежные вопросы