2011-12-25 3 views
-2

Мне нужно добавить кнопку или ярлык в UIView и добавить его в мой UIViewController. Я сделал следующее, но он только разбил программу.добавление UIView в UIViewController

UIView *myview = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 0, 300)] ; 
[myview addSubview:myButton]; 

[self.view addSubview:myView]; 

Код падает. Почему это?

+0

«Аварии коды.» не помогает. Пожалуйста, отредактируйте вопрос и сообщите нам, в какой строке сбой вашего приложения (используйте точки останова и выполните свой код) и каково фактическое сообщение об ошибке. –

+0

авария должна отображать сообщение. существует несколько возможных причин: –

+0

В предыдущих комментариях, пожалуйста, добавьте журнал сбоев, чтобы мы могли увидеть, где это происходит. –

ответ

0

Попробуйте обновить вид со следующим:

[MyView setNeedsDisplay];

и удалить второй вызов addSubView (который, вероятно, вызывает сбой):

[self.view addSubview: MyView];

2

Вы установили ширину myview на 0. Вы уверены, что создали «myButton»? Вы создаете myview, но добавляете мой * V * iew as subview. Есть ли предупреждение?

+0

Я добавил ширину к 0, это ошибка. это должно быть 100. Мне нужно, чтобы myView' занимал весь экран. Итак, как мне добавить его (если не использовать 'subView')? – sharon

+0

вы можете установить рамку myView как кадр представления, в который вы хотите поместить myview. [myView setFrame: largeView.frame]; – user1111278

1

Первый шаг, который вы должны принять это:

  • Убедитесь, что вы выделили & инициализирован объект UIButton с помощью метода «initWithFrame».
  • обеспечивают ширину вашего UIView в методе initWithframe, чтобы его можно было увидеть.
  • Теперь используйте свой [self.view addSubview: myView];

Пожалуйста, дайте мне знать, если это полезно.

1

Использование:

//Assuming that myview should have the size of the main view: 
UIView *myview = [[UIView alloc] initWithFrame:self.view.bounds]; 
[myview addSubview:myButton]; //Whatever ... 

[self.view addSubview:myview]; //There was a typo in this line 
1

Если этот блок кода находится в инициализации или loadView из ViewController, это приведет к краху. Убедитесь, что вы создали представление для контроллера представления в этом случае, прежде чем добавить мнения self.view

UIView *aView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
self.view = aView; 
[aView release]; 

myButton = [[UIButton alloc] init.... 
..... 

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 0, 300)] ; 
[myView addSubview:myButton]; 
[self.view addSubview:myView]; 
Смежные вопросы