将故事板元素链接到代码



在故事板中的一个场景中,我放置了一个按钮。它在视图上显示得很好。

视图本身由类GameView表示,它包含

IBOutlet UIButton *b;
@property (strong) IBOutlet UIButton *b;

我已经将outlet连接到storyboard视图中的按钮。

GameView类的.m文件中,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]];

当程序运行时,故事板中的按钮是看不到的。为什么?

我是一个史诗级的新人。把答案贴出来,希望别人会觉得有用。

基本上,在我的例子中,视图是从控制器以编程方式创建的,故事板屏幕上看到的任何内容都有效地替换为对象创建。

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]];

效果很好

最新更新