Связывание элементов раскадровки с кодом - PullRequest
1 голос
/ 23 ноября 2011

На одной из сцен в моей раскадровке я поместил кнопку. Показывает на вид нормально.

Само представление представлено классом GameView, который содержит оба

IBOutlet UIButton *b;

@property (strong) IBOutlet UIButton *b;

Я подключил розетку к кнопке с точки зрения раскадровки.

Из .m файла класса GameView, i:

[[self b] setFrame:CGRectMake(420, 260, 50, 30)];
[b setTitle:@"!!!" forState:UIControlStateNormal];
[self addSubview:[self b]];

Когда кнопка создается программно, нормально работает следующее

deal =  [UIButton buttonWithType:UIButtonTypeRoundedRect] ;
[deal setFrame:CGRectMake(420,170, 50, 30)];
[deal setTitle:@"Deal" forState:UIControlStateNormal];

[self addSubview:[self deal]];

Однако, когда программа работает, кнопка из раскадровки не видна. Почему?

1 Ответ

1 голос
/ 24 ноября 2011

Я эпичный новичок.Публикация ответа в надежде, что кто-то еще сочтет его полезным.

По сути, в моем случае представление создается программно из контроллера, и все, что видно на экране раскадровки, эффективно заменяется при создании объекта.

UIView *gameView = [[GameView alloc] initWithFrame:CGRectMake(0, 0, 480, 300)];
[[self view] addSubview:gameView];

Как только я положил IBOutlets в Controller и добавил

[bb setFrame:CGRectMake(420, 260, 50, 30)];
[bb setTitle:@"---" forState:UIControlStateNormal];
[gameView addSubview:[self bb]];

Это сработало как шарм.

...