刚开始学iOS开发的时候,经常要跟interface builder打交道,乍一看拖控件是挺方便的,跟以前做C#开发类似,但是Xcode比较恶心的一点是,拖完控件之后,还得手动地在Connections Inspector中绑定控件和变量的关系,事件的绑定也在这里完成。当然如果这些都有一个源代码给我们看到,倒也还好(比如C#中的xx.designer.cs),但是Xcode又全部给扔到了.xib文件中,这是一个XML文件,看起来并不像看代码那么直觉,所以是一件比较蛋疼的事情。
另一方面,如果使用interface builder,针对不同的iOS版本,不同的orientation(屏幕方向),我们可能需要设计多套UI,这在开发和维护上都是一件比较蛋疼的事情。
因此,我们考虑一种更“程序员”的方式来做这些事情:抛开Interface Builder,在代码中创建控件,定义布局,并添加事件处理机制。
下面的例子演示动态添加一个按钮以及绑定点击事件。
首先打开Xcode,创建一个新项目,可以是Single View,也可以是Empty的,我们以Single View的为例。
虽然创建的项目中有一个MainStoryboard.storyboard,并且绑定了interface builder,但我们不会去用它。我们直接修改ViewController.m的viewDidLoad方法,修改后代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn2.frame = CGRectMake(10, 10, 80, 30);
btn2.tag = 2;
[btn2 setTitle:@"Hey~" forState:UIControlS

这篇博客介绍了在iOS开发中如何避免使用Interface Builder,而是通过代码动态创建控件并设置布局及事件处理。作者以创建按钮并绑定点击事件为例,详细解释了在ViewController.m文件中实现这一过程的步骤,包括设置控件属性、添加事件监听器和实现事件处理方法。
最低0.47元/天 解锁文章
3318

被折叠的 条评论
为什么被折叠?



