是否可以在不使用Interface Builder的情况下构建iphone视图?

时间:2010-09-12 18:06:49

标签: iphone

因此,Interface Builder可以节省时间,但如果没有它我会怎么做?在C#中生成的所有代码都是清晰易懂的,在界面构建器中这是隐藏的所以我至少在学习阶段从头开始做任务:任何示例代码都这样做?

似乎Apple非常努力,因为你不能轻易使用Xcode的替代品:)

http://cocoawithlove.com/2009/02/interprocess-communication-snooping.html

4 个答案:

答案 0 :(得分:3)

是的,您可以在没有IB的情况下构建视图。只需分配和初始化视图或控件并设置其属性,例如:

UITextField *tf= [[UITextField alloc] initWithFrame: CGRectMake(24.5, 65, 270, 30)];
tf.delegate = self;
tf.textAlignment = UITextAlignmentCenter;
tf.autocorrectionType = UITextAutocorrectionTypeNo;
tf.autocapitalizationType = UITextAutocapitalizationTypeNone;
[self.view addSubview: tf];

但IB不会隐藏任何生成的代码,因为它根本不生成任何代码。相反,它会创建对象实例并将它们序列化为XIB或NIB文件。

答案 1 :(得分:2)

Interface Builder与Visual Studio的工作方式不同。它不生成代码,而是生成“原始”对象实例。从这个意义上说,不可能看到代码,因为 没有代码生成。

将接口转换为代码的一个选项nib2objc,但我不确定它的可读性。如上所述,这是您的iPhone将执行的代码。

答案 2 :(得分:1)

这个blog post向您展示了如何开始使用nibless iPhone项目。

您可能需要查看此SO question以了解如何以编程方式创建视图(例如本例中的UIButton)。

答案 3 :(得分:1)

“接口”构建器不会生成用于构建UI对象的代码。它创建了一个压缩的xib数据对象,iOS运行时将其“解压缩”(进行一些清理)到你预构建的对象中。

范式实际上是将对象本身视为对象,而不仅仅是代码执行的结果。例如如果你能“做到这一点”,你最终会得到什么。没有写任何代码。