在故事板中的一个场景中,我放置了一个按钮。它在视图上显示得很好。
视图本身由类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]];
效果很好