2011-07-04 111 views
0

我正在构建一个基本的应用程序界面,它将包含文本,输入字段和按钮的混合。为了得到项目截止日期的工作版本,我想我会在第一次迭代中使用默认的Interface Builder(IB)组件,然后如果有足够的时间,我想通过添加定制组件来“增强”界面..自定义iPhone应用程序界面

在稍后阶段将IB组件与自定义组件交换是多么容易?

+0

你知道你可以在手机上使用HTML视图吗? – ThomasRS

回答

2

这完全取决于您通过交换IB组件的意思,但总的来说,我会说IB完全支持在您自己的概念框架内定制您的UI。另一方面,很明显以编程方式定义您的用户界面将为您提供所有您可能想到的自定义功能。

从某种意义上说,您可以将IB视为一种以图形方式声明UI元素及其关系的方法,并在加载IB xib文件时自动实例化IB。这本身就是一个非常灵活的机制,可以让你有很多的可能性。

举例来说,你在你的IB视图中有一个按钮。在第一个版本中,您可以将该按钮的类设置为普通的UIButton;稍后,您只需指定该按钮类实际上是一个YourCustomClass并且您拥有它,那么您的UI将使用您的自定义按钮,而无需更改大量代码(可能与定制按钮实现相距一行或两行)。对于其他许多种UI元素也是如此。

除此之外,还有一些类,如UITableView,我认为它们在IB之外可以更好地定制(即通过以编程方式指定定制,例如定制单元)。但是在这种情况下,首先在IB中定义的接口也不是一个很大的障碍,只需将你需要的代码添加到你的程序中即可。

无论如何,有一些定制不易与IB一起使用。一个例子就是可以更好地控制UI组件的分配方式和时间;所以说,你被限制在你的xib文件中被一次性实例化,而在编程上你可以欺骗它的每一个方面。或者,可能存在UI内容更适合以编程方式定义(例如可滚动的图片网格),因此IB不适合该法案,或者对此提供少量支持(但您无法定义使用它的UI元素在第一位)。

相关问题