iOS / monotouch程序化UI布局的最佳实践

时间:2010-10-06 16:56:14

标签: ios xamarin.ios

iOS新手,来自Java / Swing世界,我习惯于以编程方式创建UI,让组件自行调整大小并使用各种聪明的布局管理器来安排。

似乎很清楚,iOS方式是大量使用Interface Builder,具有大量固定的大小和定位。我不确定IB是否会自然而然地出现,但我认为固定的布局是有意义的,因为你正在使用有限的空间和固定的窗口大小。

但是,我似乎仍然在编写很多样板文件,并且违反DRY,等等。

有人可以给我一个关于布局iOS UI,特别是程序化UI的好基础吗?

1 个答案:

答案 0 :(得分:20)

您真的不需要使用IB来编写MonoTouch应用程序。我几乎从不这样做。 CocoaTouch API非常简单,易于开发。

除了苹果文档之外,我还没有真正找到任何关于UI开发的文章(顺便说一下,这非常好,值得一读),所以根据我的经验,这里有一些提示:

  • 继承是保持代码清洁的关键。您可以继承API中的任何类,例如按钮,控制器,视图等。在这些类中继承和添加自定义项。不像许多例子所示,不要在AppDelegate中推送所有内容。你以后会感谢我。
  • 我已经提到过继承了吗?
  • iOS没有的东西是布局管理器,所以如果你像你提到的那样习惯了Java,这听起来有点奇怪。与Java人们的想法不同,这不是什么大问题。 UITableViews对此非常有帮助(参见下一点)。
  • 许多iphone应用程序都建立在UITableViewController之上,甚至是看起来不像表格的应用程序。这是一个很好的框架来做任何与滚动相关的事情。学会好好利用它。几乎任何垂直滚动的东西都是UITVC。遵循定义创建时间以及处理单元格和对象时的准则。
  • 每次在控件中添加Frame位置时都要小心。不要设置硬编码值,尽可能尝试使用其他位置的偏移量(例如x + 40)。
  • 确保根据需要将视图添加到正确的容器中。例如,如果要添加全局“加载”视图,请将其添加到Window对象,而如果要在表格单元格的左侧添加图像,请使用ContentView。 iOS会自动更改这些特殊视图(调整屏幕大小以适应“呼叫”栏顶部或旋转手机)。
  • Miguel de Icaza创建了一个管理表单和表格的强大框架,称为MonoTouch Dialog。 Take a look, and enjoy.